#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Copyright (C) 2012 Étienne Loks # 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 . # See the file COPYING for details. from ajax_select import make_ajax_form from django.contrib import admin from ishtar_common.apps import admin_site from ishtar_common.admin import HistorizedObjectAdmin, GeneralTypeAdmin from . import models class DivisionInline(admin.TabularInline): model = models.Warehouse.associated_divisions.through exclude = ("division",) extra = 1 class WarehouseAdmin(HistorizedObjectAdmin): list_display = ("name", "warehouse_type", "town") list_filter = ("warehouse_type",) search_fields = ("name", "town") model = models.Warehouse ajax_form_dict = HistorizedObjectAdmin.AJAX_FORM_DICT.copy() ajax_form_dict.update( { "town": "town", "precise_town": "town", "person_in_charge": "person", "organization": "organization", } ) form = make_ajax_form(model, ajax_form_dict) inlines = [DivisionInline] exclude = ["documents", "main_image"] admin_site.register(models.Warehouse, WarehouseAdmin) class ContainerTypeAdmin(GeneralTypeAdmin): LIST_DISPLAY = ( "label", "reference", "stationary", "length", "width", "height", "volume", ) model = models.ContainerType list_filter = ("available", "stationary") admin_site.register(models.ContainerType, ContainerTypeAdmin) class ContainerAdmin(HistorizedObjectAdmin): list_display = ( "reference", "location", "container_type", ) list_filter = ("container_type",) model = models.Container readonly_fields = HistorizedObjectAdmin.readonly_fields + ["history_date"] ajax_form_dict = HistorizedObjectAdmin.AJAX_FORM_DICT.copy() ajax_form_dict.update({"location": "warehouse", "responsible": "warehouse"}) form = make_ajax_form(model, ajax_form_dict) exclude = ["documents", "main_image"] admin_site.register(models.Container, ContainerAdmin) general_models = [models.WarehouseType] for model in general_models: admin_site.register(model, GeneralTypeAdmin)