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.py103
1 files changed, 66 insertions, 37 deletions
diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py
index 47f60bb44..866e218aa 100644
--- a/archaeological_finds/models_treatments.py
+++ b/archaeological_finds/models_treatments.py
@@ -27,7 +27,7 @@ from django.template.defaultfilters import slugify
from django.utils.translation import ugettext_lazy as _, ugettext
-from ishtar_common.utils import cached_label_changed
+from ishtar_common.utils import cached_label_changed, get_current_year
from ishtar_common.models import GeneralType, ImageModel, BaseHistorizedItem, \
OwnPerms, HistoricalRecords, Person, Organization, Source, \
ValueGetter, post_save_cache, ShortMenuItem, DashboardFormItem
@@ -92,7 +92,6 @@ class Treatment(DashboardFormItem, ValueGetter, BaseHistorizedItem,
"treatment_types__label": _(u"Type"),
"treatment_state__label": _(u"State"),
}
- IMAGE_PREFIX = 'treatment'
# extra keys than can be passed to save method
EXTRA_SAVED_KEYS = ('items', 'user')
SLUG = 'treatment'
@@ -100,8 +99,7 @@ class Treatment(DashboardFormItem, ValueGetter, BaseHistorizedItem,
max_length=200)
other_reference = models.CharField(_(u"Other ref."), blank=True, null=True,
max_length=200)
- year = models.IntegerField(_(u"Year"),
- default=lambda: datetime.datetime.now().year)
+ year = models.IntegerField(_(u"Year"), default=get_current_year)
index = models.IntegerField(_(u"Index"), default=1)
file = models.ForeignKey(
'TreatmentFile', related_name='treatments', blank=True, null=True,
@@ -149,11 +147,11 @@ class Treatment(DashboardFormItem, ValueGetter, BaseHistorizedItem,
verbose_name_plural = _(u"Treatments")
unique_together = ('year', 'index')
permissions = (
- ("view_treatment", ugettext(u"Can view all Treatments")),
- ("view_own_treatment", ugettext(u"Can view own Treatment")),
- ("add_own_treatment", ugettext(u"Can add own Treatment")),
- ("change_own_treatment", ugettext(u"Can change own Treatment")),
- ("delete_own_treatment", ugettext(u"Can delete own Treatment")),
+ ("view_treatment", u"Can view all Treatments"),
+ ("view_own_treatment", u"Can view own Treatment"),
+ ("add_own_treatment", u"Can add own Treatment"),
+ ("change_own_treatment", u"Can change own Treatment"),
+ ("delete_own_treatment", u"Can delete own Treatment"),
)
def __unicode__(self):
@@ -168,9 +166,9 @@ class Treatment(DashboardFormItem, ValueGetter, BaseHistorizedItem,
return _(u"TREATMENT")
@classmethod
- def get_query_owns(cls, user):
- return (Q(history_creator=user) |
- Q(person__ishtaruser=user.ishtaruser)) \
+ def get_query_owns(cls, ishtaruser):
+ return (Q(history_creator=ishtaruser.user_ptr) |
+ Q(person__ishtaruser=ishtaruser)) \
& Q(end_date__isnull=True)
@classmethod
@@ -203,12 +201,36 @@ class Treatment(DashboardFormItem, ValueGetter, BaseHistorizedItem,
getattr(self, k)]
return u'{} | {}'.format(u"-".join(items), self.treatment_types_lbl())
+ def _get_base_image_path(self,):
+ return u"treatment/{}/{}".format(
+ self.year, self.index)
+
def treatment_types_lbl(self):
"""
Treatment types label
:return: string
"""
return u" ; ".join([unicode(t) for t in self.treatment_types.all()])
+ treatment_types_lbl.short_description = _(u"Treatment types")
+ treatment_types_lbl.admin_order_field = 'treatment_types__label'
+
+ def downstream_lbl(self):
+ """
+ Downstream finds label
+ :return: string
+ """
+ return u" ; ".join([f.cached_label for f in self.downstream.all()])
+ downstream_lbl.short_description = _(u"Downstream finds")
+ downstream_lbl.admin_order_field = 'downstream__cached_label'
+
+ def upstream_lbl(self):
+ """
+ Upstream finds label
+ :return: string
+ """
+ return u" ; ".join([f.cached_label for f in self.upstream.all()])
+ upstream_lbl.short_description = _(u"Upstream finds")
+ upstream_lbl.admin_order_field = 'upstream__cached_label'
def get_values(self, prefix=''):
values = super(Treatment, self).get_values(prefix=prefix)
@@ -297,8 +319,8 @@ pre_delete.connect(pre_delete_treatment, sender=Treatment)
class AbsFindTreatments(models.Model):
find = models.ForeignKey(Find, verbose_name=_(u"Find"),
related_name='%(class)s_related')
- treatment = models.ForeignKey(Treatment, verbose_name=_(u"Treatment"),
- primary_key=True)
+ treatment = models.OneToOneField(Treatment, verbose_name=_(u"Treatment"),
+ primary_key=True)
# primary_key is set to prevent django to ask for an id column
# treatment is not a primary key
treatment_nb = models.IntegerField(_(u"Order"))
@@ -480,8 +502,7 @@ class TreatmentFile(DashboardFormItem, ClosedItem, BaseHistorizedItem,
SLUG = 'treatmentfile'
# fields
- year = models.IntegerField(_(u"Year"),
- default=lambda: datetime.datetime.now().year)
+ year = models.IntegerField(_(u"Year"), default=get_current_year)
index = models.IntegerField(_(u"Index"), default=1)
internal_reference = models.CharField(_(u"Internal reference"), blank=True,
null=True, max_length=200)
@@ -518,21 +539,21 @@ class TreatmentFile(DashboardFormItem, ClosedItem, BaseHistorizedItem,
unique_together = ('year', 'index')
permissions = (
("view_filetreatment",
- ugettext(u"Can view all Treatment requests")),
+ u"Can view all Treatment requests"),
("add_filetreatment",
- ugettext(u"Can add Treatment request")),
+ u"Can add Treatment request"),
("change_filetreatment",
- ugettext(u"Can change Treatment request")),
+ u"Can change Treatment request"),
("delete_filetreatment",
- ugettext(u"Can delete Treatment request")),
+ u"Can delete Treatment request"),
("view_own_filetreatment",
- ugettext(u"Can view own Treatment request")),
+ u"Can view own Treatment request"),
("add_own_filetreatment",
- ugettext(u"Can add own Treatment request")),
+ u"Can add own Treatment request"),
("change_own_filetreatment",
- ugettext(u"Can change own Treatment request")),
+ u"Can change own Treatment request"),
("delete_own_filetreatment",
- ugettext(u"Can delete own Treatment request")),
+ u"Can delete own Treatment request"),
)
ordering = ('cached_label',)
@@ -544,9 +565,9 @@ class TreatmentFile(DashboardFormItem, ClosedItem, BaseHistorizedItem,
return _(u"Treatment request")
@classmethod
- def get_query_owns(cls, user):
- return (Q(history_creator=user) |
- Q(in_charge__ishtaruser=user.ishtaruser)) \
+ def get_query_owns(cls, ishtaruser):
+ return (Q(history_creator=ishtaruser.user_ptr) |
+ Q(in_charge__ishtaruser=ishtaruser)) \
& Q(end_date__isnull=True)
@property
@@ -598,21 +619,25 @@ class TreatmentSource(Source):
verbose_name_plural = _(u"Treament documentations")
permissions = (
("view_treatmentsource",
- ugettext(u"Can view all Treatment sources")),
+ u"Can view all Treatment sources"),
("view_own_treatmentsource",
- ugettext(u"Can view own Treatment source")),
+ u"Can view own Treatment source"),
("add_own_treatmentsource",
- ugettext(u"Can add own Treatment source")),
+ u"Can add own Treatment source"),
("change_own_treatmentsource",
- ugettext(u"Can change own Treatment source")),
+ u"Can change own Treatment source"),
("delete_own_treatmentsource",
- ugettext(u"Can delete own Treatment source")),
+ u"Can delete own Treatment source"),
)
@property
def owner(self):
return self.treatment
+ def _get_base_image_path(self):
+ return u"treatment/{}/{}/source".format(
+ self.treatment.year, self.treatment.index)
+
class TreatmentFileSource(Source):
treatment_file = models.ForeignKey(
@@ -628,17 +653,21 @@ class TreatmentFileSource(Source):
verbose_name_plural = _(u"Treatment request documentations")
permissions = (
("view_filetreatmentsource",
- ugettext(u"Can view Treatment request source")),
+ u"Can view Treatment request source"),
("view_own_filetreatmentsource",
- ugettext(u"Can view own Treatment request source")),
+ u"Can view own Treatment request source"),
("add_own_filetreatmentsource",
- ugettext(u"Can add own Treatment request source")),
+ u"Can add own Treatment request source"),
("change_own_filetreatmentsource",
- ugettext(u"Can change own Treatment request source")),
+ u"Can change own Treatment request source"),
("delete_own_filetreatmentsource",
- ugettext(u"Can delete own Treatment request source")),
+ u"Can delete own Treatment request source"),
)
@property
def owner(self):
return self.treatment_file
+
+ def _get_base_image_path(self):
+ return u"treatmentfile/{}/{}/source".format(
+ self.treatment_file.year, self.treatment_file.index)