diff options
Diffstat (limited to 'archaeological_finds/models_treatments.py')
| -rw-r--r-- | archaeological_finds/models_treatments.py | 103 |
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) |
