diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-06-24 14:37:16 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-06-24 14:37:16 +0200 |
commit | 95773b4ccd0beaa31f76c93a7c9b5e24211401dc (patch) | |
tree | 6b4fc14f42da9d91ab2bb4b989ffeeb42947392f /ishtar/ishtar_base/admin.py | |
parent | 7af17b15fa5cb03050b0fe90d38ab9f37dc51e74 (diff) | |
download | Ishtar-95773b4ccd0beaa31f76c93a7c9b5e24211401dc.tar.bz2 Ishtar-95773b4ccd0beaa31f76c93a7c9b5e24211401dc.zip |
Sources creation for Operation (refs #497) - restructuration (refs #57)
Diffstat (limited to 'ishtar/ishtar_base/admin.py')
-rw-r--r-- | ishtar/ishtar_base/admin.py | 234 |
1 files changed, 234 insertions, 0 deletions
diff --git a/ishtar/ishtar_base/admin.py b/ishtar/ishtar_base/admin.py new file mode 100644 index 000000000..3a93f1852 --- /dev/null +++ b/ishtar/ishtar_base/admin.py @@ -0,0 +1,234 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Copyright (C) 2010-2011 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. + +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# See the file COPYING for details. + +""" +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 ishtar import settings +import models + +class HistorizedObjectAdmin(admin.ModelAdmin): + readonly_fields = ('history_modifier',) + def save_model(self, request, obj, form, change): + obj.history_modifier = request.user + obj.save() + +class DepartementAdmin(admin.ModelAdmin): + list_display = ('number', 'label',) + model = models.Departement + +admin.site.register(models.Departement, DepartementAdmin) + +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',) + model = models.Person + +admin.site.register(models.Person, PersonAdmin) + +class FileAdmin(HistorizedObjectAdmin): + list_display = ['year', 'numeric_reference', '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',) + model = models.File + +admin.site.register(models.File, FileAdmin) + +class OperationAdmin(HistorizedObjectAdmin): + list_display = ['year', 'operation_code', 'start_date', 'end_date', + 'operation_type'] + list_filter = ("year", "operation_type",) + search_fields = ['towns__name', 'operation_code'] + if settings.COUNTRY == 'fr': + list_display += ['code_patriarche'] + search_fields += ['code_patriarche'] + model = models.Operation + +admin.site.register(models.Operation, OperationAdmin) + +class OperationSourceAdmin(admin.ModelAdmin): + list_display = ('operation', 'title', 'source_type',) + list_filter = ('source_type',) + search_fields = ('title', 'operation__name') + model = models.OperationSource + +admin.site.register(models.OperationSource, OperationSourceAdmin) + +class ParcelAdmin(HistorizedObjectAdmin): + list_display = ('section', 'parcel_number', 'operation', 'associated_file') + search_fields = ('operation__name',) + model = models.Parcel + +admin.site.register(models.Parcel, ParcelAdmin) + +class PeriodAdmin(admin.ModelAdmin): + list_display = ('label', 'start_date', 'end_date', 'parent') + model = models.Period + +admin.site.register(models.Period, PeriodAdmin) + +class DatingAdmin(admin.ModelAdmin): + list_display = ('period', 'start_date', 'end_date', 'dating_type', + 'quality') + list_filter = ("period", 'dating_type', 'quality') + model = models.Dating + +admin.site.register(models.Dating, DatingAdmin) + +class ContextRecordAdmin(HistorizedObjectAdmin): + list_display = ('label', 'length', 'width', + 'thickness', 'depth') + list_filter = ('has_furniture',) + search_fields = ('parcel__operation__name', "datings__period__label") + model = models.ContextRecord + +admin.site.register(models.ContextRecord, ContextRecordAdmin) + +class ContextRecordSourceAdmin(admin.ModelAdmin): + list_display = ('context_record', 'title', 'source_type',) + list_filter = ('source_type',) + search_fields = ('title', ) + model = models.ContextRecordSource + +admin.site.register(models.ContextRecordSource, ContextRecordSourceAdmin) + +class BaseItemAdmin(HistorizedObjectAdmin): + list_display = ('label', 'context_record', 'is_isolated') + search_fields = ('label', 'context_record__parcel__operation__name',) + model = models.BaseItem + +admin.site.register(models.BaseItem, BaseItemAdmin) + +class ItemAdmin(HistorizedObjectAdmin): + list_display = ('label', 'material_type', 'dating', 'volume', 'weight', + 'item_number',) + list_filter = ('material_type',) + search_fields = ('label', "dating__period__label") + model = models.Item + +admin.site.register(models.Item, ItemAdmin) + +class ItemSourceAdmin(admin.ModelAdmin): + list_display = ('item', 'title', 'source_type',) + list_filter = ('source_type',) + search_fields = ('title', ) + model = models.ItemSource + +admin.site.register(models.ItemSource, ItemSourceAdmin) + +class WarehouseAdmin(HistorizedObjectAdmin): + list_display = ('name', 'warehouse_type', 'town') + list_filter = ('warehouse_type',) + search_fields = ('name', 'town') + model = models.Warehouse + +admin.site.register(models.Warehouse, WarehouseAdmin) + +class AdministrativeActAdmin(HistorizedObjectAdmin): + list_display = ('operation', 'act_type', 'signature_date') + list_filter = ('act_type',) + search_fields = ('operation__name',) + model = models.AdministrativeAct + +admin.site.register(models.AdministrativeAct, AdministrativeActAdmin) + +class ContainerTypeAdmin(admin.ModelAdmin): + list_display = ('label', 'reference', 'length', 'width', 'height', + 'volume') + model = models.ContainerType + +admin.site.register(models.ContainerType, ContainerTypeAdmin) + +class ContainerAdmin(admin.ModelAdmin): + list_display = ('reference', 'location', 'container_type',) + list_filter = ("container_type",) + model = models.Container + +admin.site.register(models.Container, ContainerAdmin) + +class TownAdmin(admin.ModelAdmin): + list_display = ['name',] + search_fields = ['name'] + if settings.COUNTRY == 'fr': + list_display += ['numero_insee', 'departement', ] + search_fields += ['numero_insee', 'departement__label', ] + list_filter = ("departement",) + model = models.Town + +admin.site.register(models.Town, TownAdmin) + +class AuthorAdmin(admin.ModelAdmin): + list_display = ['person', 'author_type'] + list_filter = ("author_type",) + model = models.Author + +admin.site.register(models.Author, AuthorAdmin) + +class PropertyAdmin(admin.ModelAdmin): + list_display = ['item', 'person', 'start_date', 'end_date'] + search_fields = ('item__label', 'person__name') + model = models.Property + +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) + +class TreatmentSourceAdmin(admin.ModelAdmin): + list_display = ('treatment', 'title', 'source_type',) + list_filter = ('source_type',) + search_fields = ('title',) + model = models.TreatmentSource + +admin.site.register(models.TreatmentSource, TreatmentSourceAdmin) + +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.AuthorType, + models.OrganizationType, models.TreatmentType, + models.RemainType, models.PermitType, models.Unit, + models.ActivityType, models.IdentificationType] +if settings.COUNTRY == 'fr': + basic_models += [models.Arrondissement, models.Canton, models.SaisineType] + +for model in basic_models: + admin.site.register(model) |