Long email subject, but this might be a long email. Hello developers! I'd like to introduce myself, I'm Alan. And now here's my situation:
I work for the system administration group in the Math and Computer Science Division at Argonne Nat'l Lab (www.mcs.anl.gov), near Chicago. We have thousands of computers (lots in cluster form) and maybe a thousand users which fluctuates due to students and collaborators and such. I'm generally in charge of the software to keep track of all the user accounts and making sure the accounts have access to the proper computers. Also we provide web access for people to access details of their account, request access to other computers, and other various tasks we don't want to have to do for them. Plus the whole admin side of things, that us in the sysadmin group can do. 4 years ago or so, when tackling this project, we started working on a database access layer, which, in the present day, looks VERY similar to Django. This was actually done with similar results in Python and PHP. Python for our command line utilities, and PHP for.. duh. Besides one other individual near the beginning, I've been the main designer on it, on and off (since I've discontinued working here and came back more than once). If you want to look at our database access code and object model, respectively, here you go: http://www.mcs.anl.gov/~bailey/dbase.py.txt http://www.mcs.anl.gov/~bailey/userbase.py.txt Our class for single objects is DBase. and a list of objects is ObjectSet. You can take a subclass of DBase to define an object, and can define functions like GetAllUsers (in django: users.get_list()). It might be vaguely eerie to look at the classes in userbase.py.txt and see how similar or different they are to Django. We didn't list all the fields in the class but just read from the database, but we also have _editrules and _default which I saw had synonyms in Django. We have relation representation as well, with _array_cook for many-many or one-many relations, and _scalar_cook for foreignkey or one-one. Those files are currently from my development directory, so I know I added some stuff which isn't current. Anyways, two days ago we discovered Django and thought we had found heaven. At least two of us in the group. I was also disheartened that all of the work I had put into our DBase project seemed already done here with Django (along with tons more features... and a bit more polished... and docs!). But I've played along with django and have it setup with our test database here and it's really good. Of course. There are some things that we do though, that I don't see in Django. The biggest is our logging system, which I really like. In Django I've just seen logging in the admin page with the 'History'. Our setup is that we have a class LogEntry (actually action_log but i would change it now) correspding to a table in the db with all of the changes. Anytime someone makes a change (through webpages or through cmdline) a changelog is inserted into the Log table, behind the scenes in the DBase library, with the fields changed and sometimes a user-provided log message. Since it's a DBase object, you can then do a user.GetLog() to see what has changed with a user's account, or check the log of any other type of object and also the log of everything changed by a certain user. This is a difference in application really, as django was designed for a news site where things get out of date each day. But in our world, we need to know what happened to the user's account in the whole lifetime of the user. Also in our implementation were triggers. If a certain field was edited, this would prompt another change in a field. Yes, I know triggers are now in MySQL 5 and always were in PostgreSQL, but that's what we were using. Similar to that is our 'Push Changes' functionality, for example, if you change a user's password or their access permissions, this needs to be enacted in the real world by some UNIXy command line or change of config file. So whenever a field was changed it would prompt a certain cmd to be run. But hopefully I will use MySQL 5 and implement these in the DB. We have authentication in our website that is tied to the user's main password, which we want to keep. This brings up two things - Is there a way to have the admin interface pwcheck based on a different method? In our case, NIS. And having an easy way to slip an authentication page into Django 'apps' is good. There might be something like that already. We also might be needing to access Oracle databases in the near future (politics and a change of the scope of the project). We currently don't do that in our DBase but I spent a while starting to add it. So finally, after all this blabber, I can tell you I'd be interested in contributing to Django to maybe get some of these features in there, specifically the logging and Oracle. Let me know what you think. It would make it much easier to use at our site. Oh, I almost forgot, because it's essentially an application. We also have the equivalent of the Django admin interface in command line form. We have a program called 'userbase' which sysadmins can do to query anything about a user or users. For example: userbase -look activeusers -with resources cluster1,cluster2 \ -with 0 sponsors -query name_first='Alan' -get name_last That grabs the last names of users that have access to cluster1 and cluster2 and have 0 sponsors and a first name of Alan. Good for sysadmins that need commands to use in scripts or don't like webpages. -with looks at relations and -query looks at the fields of the table/object. And this program is a wrapper (albeit a big one) over the DBase library. I'm currently working on having this work on top of my new Django models. This could be added into django too, initially as part of 'manage.py' as a way to look at your objects. Later! Alan --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django developers" group. To post to this group, send email to django-developers@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-developers -~----------~----~----~----~------~----~------~--~---