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) |
