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