diff options
Diffstat (limited to 'ishtar/furnitures/admin.py')
| -rw-r--r-- | ishtar/furnitures/admin.py | 60 | 
1 files changed, 48 insertions, 12 deletions
diff --git a/ishtar/furnitures/admin.py b/ishtar/furnitures/admin.py index b32a35ce1..d4a4d5742 100644 --- a/ishtar/furnitures/admin.py +++ b/ishtar/furnitures/admin.py @@ -21,18 +21,43 @@  Admin description  """ +from django import forms  from django.contrib import admin +from django.core.exceptions import ObjectDoesNotExist +from django.utils.translation import ugettext_lazy as _ +from django.contrib import messages  from ishtar import settings  import models +class HistorizedObjectAdmin(admin.ModelAdmin): +    def save_model(self, request, obj, form, change): +        try: +            ishtar_user = models.IshtarUser.objects.get(user=request.user) +            obj.history_modifier = ishtar_user +        except ObjectDoesNotExist: +            msg = _(u'Account \ +information not created. Create an Ishtar User associated to your account \ +before editing.') +            messages.error(request, msg, fail_silently=True) +            form.cleaned_data = {} +        obj.save() +  class DepartementAdmin(admin.ModelAdmin):      list_display = ('number', 'label',)      model = models.Departement  admin.site.register(models.Departement, DepartementAdmin) -class PersonAdmin(admin.ModelAdmin): +class OrganizationAdmin(HistorizedObjectAdmin): +    list_display = ('name', 'organization_type') +    list_filter = ("organization_type",) +    search_fields = ('name',) +    model = models.Organization + +admin.site.register(models.Organization, OrganizationAdmin) + +class PersonAdmin(HistorizedObjectAdmin):      list_display = ('name', 'surname', 'email', 'person_type')      list_filter = ("person_type", "in_charge_storage", "is_author",)      search_fields = ('name', 'surname', 'email',) @@ -40,15 +65,19 @@ class PersonAdmin(admin.ModelAdmin):  admin.site.register(models.Person, PersonAdmin) -class FileAdmin(admin.ModelAdmin): -    list_display = ('year', 'number', 'is_active', 'file_type') +class FileAdmin(HistorizedObjectAdmin): +    list_display = ['year', 'internal_reference', 'is_active', 'file_type', +                    'general_contractor',] +    if settings.COUNTRY == 'fr': +        list_display += ['saisine_type', 'reference_number']      list_filter = ("file_type", "year", 'is_active',)      search_fields = ('towns__name',) +    readonly_fields = ('history_modifier',)      model = models.File  admin.site.register(models.File, FileAdmin) -class OperationAdmin(admin.ModelAdmin): +class OperationAdmin(HistorizedObjectAdmin):      list_display = ['name', 'operation_code', 'start_date', 'end_date',                      'operation_type']      list_filter = ("operation_type",) @@ -81,7 +110,7 @@ class DatingAdmin(admin.ModelAdmin):  admin.site.register(models.Dating, DatingAdmin) -class RegistrationUnitAdmin(admin.ModelAdmin): +class RegistrationUnitAdmin(HistorizedObjectAdmin):      list_display = ('label', 'lenght', 'width',                      'thickness', 'depth')      list_filter = ('has_furniture',) @@ -98,14 +127,14 @@ class SourceAdmin(admin.ModelAdmin):  admin.site.register(models.Source, SourceAdmin) -class BaseItemAdmin(admin.ModelAdmin): +class BaseItemAdmin(HistorizedObjectAdmin):      list_display = ('label', 'registration_unit', 'is_isolated')      search_fields = ('label', 'registration_unit__parcel__operation__name',)      model = models.BaseItem  admin.site.register(models.BaseItem, BaseItemAdmin) -class ItemAdmin(admin.ModelAdmin): +class ItemAdmin(HistorizedObjectAdmin):      list_display = ('label', 'material_type', 'dating', 'volume', 'weight',                      'item_number',)      list_filter = ('material_type',) @@ -114,7 +143,7 @@ class ItemAdmin(admin.ModelAdmin):  admin.site.register(models.Item, ItemAdmin) -class WarehouseAdmin(admin.ModelAdmin): +class WarehouseAdmin(HistorizedObjectAdmin):      list_display = ('name', 'warehouse_type', 'town')      list_filter = ('warehouse_type',)      search_fields = ('name', 'town') @@ -122,7 +151,7 @@ class WarehouseAdmin(admin.ModelAdmin):  admin.site.register(models.Warehouse, WarehouseAdmin) -class AdministrativeActAdmin(admin.ModelAdmin): +class AdministrativeActAdmin(HistorizedObjectAdmin):      list_display = ('operation', 'act_type', 'signature_date')      list_filter = ('act_type',)      search_fields = ('operation__name',) @@ -166,13 +195,20 @@ class PropertyAdmin(admin.ModelAdmin):  admin.site.register(models.Property, PropertyAdmin) +class TreatmentAdmin(HistorizedObjectAdmin): +    list_display = ('location', 'treatment_type', 'container', 'person') +    list_filter = ('treatment_type',) +    model = models.Treatment + +admin.site.register(models.Treatment, TreatmentAdmin) +  basic_models = [models.PersonType, models.IshtarUser, models.FileType,                  models.OperationType, models.DatingType, models.DatingQuality,                  models.SourceType, models.MaterialType, models.ParcelOwner, -                models.WarehouseType, models.ActType, models.Treatment, -                models.AuthorType] +                models.WarehouseType, models.ActType, models.AuthorType, +                models.TreatmentType]  if settings.COUNTRY == 'fr': -    basic_models += [models.Arrondissement, models.Canton] +    basic_models += [models.Arrondissement, models.Canton, models.SaisineType]  for model in basic_models:      admin.site.register(model)  | 
