diff options
Diffstat (limited to 'archaeological_finds/models_treatments.py')
-rw-r--r-- | archaeological_finds/models_treatments.py | 65 |
1 files changed, 59 insertions, 6 deletions
diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py index 4a453f538..d3e18122c 100644 --- a/archaeological_finds/models_treatments.py +++ b/archaeological_finds/models_treatments.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2016 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2016-2017 É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 @@ -30,7 +30,7 @@ from django.utils.translation import ugettext_lazy as _, ugettext from ishtar_common.utils import cached_label_changed from ishtar_common.models import GeneralType, ImageModel, BaseHistorizedItem, \ OwnPerms, HistoricalRecords, Person, Organization, Source, \ - ValueGetter, post_save_cache, ShortMenuItem + ValueGetter, post_save_cache, ShortMenuItem, DashboardFormItem from archaeological_warehouse.models import Warehouse, Container from archaeological_finds.models_finds import Find, FindBasket from archaeological_operations.models import ClosedItem, Operation @@ -69,7 +69,8 @@ post_save.connect(post_save_cache, sender=TreatmentState) post_delete.connect(post_save_cache, sender=TreatmentState) -class Treatment(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem): +class Treatment(DashboardFormItem, ValueGetter, BaseHistorizedItem, + ImageModel, OwnPerms, ShortMenuItem): SHOW_URL = 'show-treatment' TABLE_COLS = ('year', 'index', 'treatment_types__label', 'treatment_state__label', @@ -179,7 +180,8 @@ class Treatment(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem): if menu_filtr: if 'treatmentfile' in menu_filtr: replace_query = Q(file=menu_filtr['treatmentfile']) - if 'find' in menu_filtr and 'basket' not in str(menu_filtr['find']): + if 'find' in menu_filtr and \ + 'basket' not in str(menu_filtr['find']): q = Q(upstream=menu_filtr['find']) | Q( downstream=menu_filtr['find']) if replace_query: @@ -208,6 +210,21 @@ class Treatment(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem): """ return u" ; ".join([unicode(t) for t in self.treatment_types.all()]) + def get_values(self, prefix=''): + values = super(Treatment, self).get_values(prefix=prefix) + values[prefix + "upstream_finds"] = u" ; ".join( + [unicode(up) for up in self.upstream.all()]) + values[prefix + "downstream_finds"] = u" ; ".join( + [unicode(down) for down in self.downstream.all()]) + values[prefix + "operations"] = u" ; ".join( + [unicode(ope) for ope in self.get_query_operations().all()]) + if self.upstream.count(): + find = self.upstream.all()[0] + if 'associatedfind_' not in prefix: + values.update( + find.get_values(prefix=prefix + 'associatedfind_')) + return values + def pre_save(self): # is not new if self.pk is not None: @@ -455,8 +472,8 @@ post_save.connect(post_save_cache, sender=TreatmentFileType) post_delete.connect(post_save_cache, sender=TreatmentFileType) -class TreatmentFile(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter, - ShortMenuItem): +class TreatmentFile(DashboardFormItem, ClosedItem, BaseHistorizedItem, + OwnPerms, ValueGetter, ShortMenuItem): SLUG = 'treatmentfile' SHOW_URL = 'show-treatmentfile' TABLE_COLS = ['type', 'year', 'index', 'internal_reference', 'name'] @@ -502,6 +519,12 @@ class TreatmentFile(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter, permissions = ( ("view_filetreatment", ugettext(u"Can view all Treatment requests")), + ("add_filetreatment", + ugettext(u"Can add Treatment request")), + ("change_filetreatment", + ugettext(u"Can change Treatment request")), + ("delete_filetreatment", + ugettext(u"Can delete Treatment request")), ("view_own_filetreatment", ugettext(u"Can view own Treatment request")), ("add_own_filetreatment", @@ -573,6 +596,18 @@ class TreatmentSource(Source): class Meta: verbose_name = _(u"Treatment documentation") verbose_name_plural = _(u"Treament documentations") + permissions = ( + ("view_treatmentsource", + ugettext(u"Can view all Treatment sources")), + ("view_own_treatmentsource", + ugettext(u"Can view own Treatment source")), + ("add_own_treatmentsource", + ugettext(u"Can add own Treatment source")), + ("change_own_treatmentsource", + ugettext(u"Can change own Treatment source")), + ("delete_own_treatmentsource", + ugettext(u"Can delete own Treatment source")), + ) @property def owner(self): @@ -591,6 +626,24 @@ class TreatmentFileSource(Source): class Meta: verbose_name = _(u"Treatment request documentation") verbose_name_plural = _(u"Treatment request documentations") + permissions = ( + ("view_filetreatmentsource", + ugettext(u"Can view Treatment request source")), + ("add_filetreatmentsource", + ugettext(u"Can add Treatment request source")), + ("change_filetreatmentsource", + ugettext(u"Can change Treatment request source")), + ("delete_filetreatmentsource", + ugettext(u"Can delete Treatment request source")), + ("view_own_filetreatmentsource", + ugettext(u"Can view own Treatment request source")), + ("add_own_filetreatmentsource", + ugettext(u"Can add own Treatment request source")), + ("change_own_filetreatmentsource", + ugettext(u"Can change own Treatment request source")), + ("delete_own_filetreatmentsource", + ugettext(u"Can delete own Treatment request source")), + ) @property def owner(self): |