summaryrefslogtreecommitdiff
path: root/ishtar/furnitures/admin.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar/furnitures/admin.py')
-rw-r--r--ishtar/furnitures/admin.py60
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)