from django.contrib import admin
import django.db.models
+from django import forms
from conifer.syrup.models import *
-for m in [ServiceDesk, Group, Membership, Course,
+for m in [ServiceDesk, Group, Course,
Department, Site, Term,
- UserProfile, Config, Z3950Target]:
+Config, Z3950Target]:
admin.site.register(m)
class ItemAdmin(admin.ModelAdmin):
model = Item
admin.site.register(Item, ItemAdmin)
+
+class MembershipAdminForm(forms.ModelForm):
+ user = forms.ModelChoiceField(queryset=User.objects.order_by('username'))
+
+ class Meta:
+ model = Membership
+
+class MembershipAdmin(admin.ModelAdmin):
+ form = MembershipAdminForm
+
+admin.site.register(Membership, MembershipAdmin)
+
+class UserProfileAdminForm(forms.ModelForm):
+ user = forms.ModelChoiceField(queryset=User.objects.order_by('username'))
+
+ class Meta:
+ model = UserProfile
+
+class UserProfileAdmin(admin.ModelAdmin):
+ form = UserProfileAdminForm
+
+admin.site.register(UserProfile, UserProfileAdmin)
# the User object (although UserProfile would be another logical
# candidate).
+
class UserExtensionMixin(object):
+ class Meta:
+ ordering = ['username']
+
def sites(self, role=None):
self.maybe_refresh_external_memberships()
sites = Site.objects.filter(group__membership__user=self.id).distinct()
def __unicode__(self):
return 'UserProfile(%s)' % self.user
+ class Meta:
+ ordering = ['user__username']
+
#----------------------------------------------------------------------
# Lookup tables
def __unicode__(self):
return self.name
+ class Meta:
+ ordering = ['name']
+
@classmethod
def default(cls):
return cls.objects.get(pk=Config.get('default.desk', 1))
def __unicode__(self):
return self.name
+ class Meta:
+ ordering = ['name']
+
class Course(BaseModel):
"""An abstract course (not a course offering.)"""
class Meta:
unique_together = (('course', 'start_term', 'owner'))
- ordering = ['-start_term__start', 'course__code', 'owner__last_name']
+ ordering = ['course__code', 'owner__last_name', '-start_term__start']
def save(self, *args, **kwargs):
# Assert that the term-order is logical.
def __unicode__(self):
return u"Group('%s', '%s')" % (self.site,
self.external_id or '(internal)')
+ class Meta:
+ ordering = ['site__course__code', 'site__course__name', 'external_id']
+
class Membership(BaseModel):
class Meta:
unique_together = (('group', 'user'))
+ ordering = ['user__username',
+ 'group__site__course__code', 'group__site__course__name', 'group__external_id']
user = m.ForeignKey(User)
group = m.ForeignKey(Group)