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.py219
1 files changed, 113 insertions, 106 deletions
diff --git a/archaeological_finds/models_treatments.py b/archaeological_finds/models_treatments.py
index 3f1c14069..7f3aab284 100644
--- a/archaeological_finds/models_treatments.py
+++ b/archaeological_finds/models_treatments.py
@@ -45,12 +45,12 @@ from ishtar_common.utils import cached_label_changed, get_current_year, \
class TreatmentState(GeneralType):
- executed = models.BooleanField(_(u"Treatment is executed"), default=False)
- order = models.IntegerField(verbose_name=_(u"Order"), default=10)
+ executed = models.BooleanField(_("Treatment is executed"), default=False)
+ order = models.IntegerField(verbose_name=_("Order"), default=10)
class Meta:
- verbose_name = _(u"Treatment state type")
- verbose_name_plural = _(u"Treatment state types")
+ verbose_name = _("Treatment state type")
+ verbose_name_plural = _("Treatment state types")
ordering = ('order', 'label',)
@classmethod
@@ -89,11 +89,11 @@ class Treatment(DashboardFormItem, ValueGetter, DocumentItem,
"person__pk": "person__pk", # used by dynamic_table_documents
}
COL_LABELS = {
- "downstream_cached_label": _(u"Downstream find"),
- "upstream_cached_label": _(u"Upstream find"),
- "treatment_types__label": _(u"Type"),
- "treatment_state__label": _(u"State"),
- "person__cached_label": _(u"Responsible"),
+ "downstream_cached_label": _("Downstream find"),
+ "upstream_cached_label": _("Upstream find"),
+ "treatment_types__label": _("Type"),
+ "treatment_state__label": _("State"),
+ "person__cached_label": _("Responsible"),
"scientific_monitoring_manager__cached_label": _(
"Scientific monitoring manager"),
}
@@ -159,80 +159,80 @@ class Treatment(DashboardFormItem, ValueGetter, DocumentItem,
PARENT_SEARCH_VECTORS = ['person', 'organization']
objects = ExternalIdManager()
- label = models.CharField(_(u"Label"), blank=True, null=True,
+ label = models.CharField(_("Label"), blank=True, null=True,
max_length=200)
- other_reference = models.CharField(_(u"Other ref."), blank=True, null=True,
+ other_reference = models.CharField(_("Other ref."), blank=True, null=True,
max_length=200)
- year = models.IntegerField(_(u"Year"), default=get_current_year)
- index = models.IntegerField(_(u"Index"), default=1)
+ year = models.IntegerField(_("Year"), default=get_current_year)
+ index = models.IntegerField(_("Index"), default=1)
file = models.ForeignKey(
'TreatmentFile', related_name='treatments', blank=True, null=True,
on_delete=models.SET_NULL,
- verbose_name=_(u"Associated request"))
+ verbose_name=_("Associated request"))
treatment_types = models.ManyToManyField(
- TreatmentType, verbose_name=_(u"Treatment type"))
+ TreatmentType, verbose_name=_("Treatment type"))
treatment_state = models.ForeignKey(
- TreatmentState, verbose_name=_(u"State"),
+ TreatmentState, verbose_name=_("State"),
default=TreatmentState.get_default
)
executed = models.BooleanField(
- _(u"Treatment have been executed"), default=False)
+ _("Treatment have been executed"), default=False)
location = models.ForeignKey(
- Warehouse, verbose_name=_(u"Location"), blank=True, null=True,
+ Warehouse, verbose_name=_("Location"), blank=True, null=True,
on_delete=models.SET_NULL,
help_text=_(
- u"Location where the treatment is done. Target warehouse for "
- u"a move."))
+ "Location where the treatment is done. Target warehouse for "
+ "a move."))
person = models.ForeignKey(
- Person, verbose_name=_(u"Responsible"), blank=True, null=True,
+ Person, verbose_name=_("Responsible"), blank=True, null=True,
on_delete=models.SET_NULL, related_name='treatments')
scientific_monitoring_manager = models.ForeignKey(
Person, verbose_name=_('Scientific monitoring manager'), blank=True,
null=True, on_delete=models.SET_NULL,
related_name='manage_treatments')
organization = models.ForeignKey(
- Organization, verbose_name=_(u"Organization"), blank=True, null=True,
+ Organization, verbose_name=_("Organization"), blank=True, null=True,
on_delete=models.SET_NULL, related_name='treatments')
- external_id = models.CharField(_(u"External ID"), blank=True, null=True,
+ external_id = models.CharField(_("External ID"), blank=True, null=True,
max_length=200)
comment = models.TextField(_("Comment"), blank=True, default="")
description = models.TextField(_("Description"), blank=True, default="")
goal = models.TextField(_("Goal"), blank=True, default="")
- start_date = models.DateField(_(u"Start date"), blank=True, null=True)
- end_date = models.DateField(_(u"Closing date"), blank=True, null=True)
+ start_date = models.DateField(_("Start date"), blank=True, null=True)
+ end_date = models.DateField(_("Closing date"), blank=True, null=True)
creation_date = models.DateTimeField(default=datetime.datetime.now)
- container = models.ForeignKey(Container, verbose_name=_(u"Container"),
+ container = models.ForeignKey(Container, verbose_name=_("Container"),
on_delete=models.SET_NULL,
blank=True, null=True)
- estimated_cost = models.FloatField(_(u"Estimated cost"),
+ estimated_cost = models.FloatField(_("Estimated cost"),
blank=True, null=True)
- quoted_cost = models.FloatField(_(u"Quoted cost"),
+ quoted_cost = models.FloatField(_("Quoted cost"),
blank=True, null=True)
- realized_cost = models.FloatField(_(u"Realized cost"),
+ realized_cost = models.FloatField(_("Realized cost"),
blank=True, null=True)
- insurance_cost = models.FloatField(_(u"Insurance cost"),
+ insurance_cost = models.FloatField(_("Insurance cost"),
blank=True, null=True)
documents = models.ManyToManyField(
- Document, related_name='treatments', verbose_name=_(u"Documents"),
+ Document, related_name='treatments', verbose_name=_("Documents"),
blank=True)
main_image = models.ForeignKey(
Document, related_name='main_image_treatments',
on_delete=models.SET_NULL,
- verbose_name=_(u"Main image"), blank=True, null=True)
+ verbose_name=_("Main image"), blank=True, null=True)
cached_label = models.TextField(_("Cached name"), blank=True, default="",
db_index=True)
history = HistoricalRecords(bases=[HistoryModel])
class Meta:
- verbose_name = _(u"Treatment")
- verbose_name_plural = _(u"Treatments")
+ verbose_name = _("Treatment")
+ verbose_name_plural = _("Treatments")
unique_together = ('year', 'index')
permissions = (
- ("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"),
+ ("view_treatment", "Can view all Treatments"),
+ ("view_own_treatment", "Can view own Treatment"),
+ ("add_own_treatment", "Can add own Treatment"),
+ ("change_own_treatment", "Can change own Treatment"),
+ ("delete_own_treatment", "Can delete own Treatment"),
)
ordering = ("-year", "-index", "-start_date")
indexes = [
@@ -244,7 +244,7 @@ class Treatment(DashboardFormItem, ValueGetter, DocumentItem,
@property
def short_class_name(self):
- return _(u"TREATMENT")
+ return _("TREATMENT")
@property
def limited_finds(self):
@@ -274,10 +274,7 @@ class Treatment(DashboardFormItem, ValueGetter, DocumentItem,
'basket' not in str(menu_filtr['find']):
q = Q(upstream=menu_filtr['find']) | Q(
downstream=menu_filtr['find'])
- if replace_query:
- replace_query = replace_query | q
- else:
- replace_query = q
+ replace_query = replace_query | q if replace_query else q
owns = super(Treatment, cls).get_owns(
user, replace_query=replace_query, limit=limit,
values=values, get_short_menu_class=get_short_menu_class)
@@ -291,18 +288,18 @@ class Treatment(DashboardFormItem, ValueGetter, DocumentItem,
items = [str(getattr(self, k))
for k in ['year', 'index', 'other_reference', 'label'] if
getattr(self, k)]
- return u'{} | {}'.format(u"-".join(items), self.treatment_types_lbl())
+ return '{} | {}'.format("-".join(items), self.treatment_types_lbl())
def _get_base_image_path(self,):
- return u"{}/{}/{}".format(self.SLUG, self.year, self.index)
+ return "{}/{}/{}".format(self.SLUG, self.year, self.index)
def treatment_types_lbl(self):
"""
Treatment types label
:return: string
"""
- return u" ; ".join([str(t) for t in self.treatment_types.all()])
- treatment_types_lbl.short_description = _(u"Treatment types")
+ return " ; ".join(str(t) for t in self.treatment_types.all())
+ treatment_types_lbl.short_description = _("Treatment types")
treatment_types_lbl.admin_order_field = 'treatment_types__label'
def downstream_lbl(self):
@@ -310,8 +307,8 @@ class Treatment(DashboardFormItem, ValueGetter, DocumentItem,
Downstream finds label
:return: string
"""
- return u" ; ".join([f.cached_label for f in self.downstream.all()])
- downstream_lbl.short_description = _(u"Downstream finds")
+ return " ; ".join(f.cached_label for f in self.downstream.all())
+ downstream_lbl.short_description = _("Downstream finds")
downstream_lbl.admin_order_field = 'downstream__cached_label'
def upstream_lbl(self):
@@ -319,7 +316,7 @@ class Treatment(DashboardFormItem, ValueGetter, DocumentItem,
Upstream finds label
:return: string
"""
- return " ; ".join([f.cached_label for f in self.upstream.all()])
+ return " ; ".join(f.cached_label for f in self.upstream.all())
upstream_lbl.short_description = _("Upstream finds")
upstream_lbl.admin_order_field = 'upstream__cached_label'
@@ -339,14 +336,20 @@ class Treatment(DashboardFormItem, ValueGetter, DocumentItem,
prefix=prefix, no_values=no_values, filtr=filtr, **kwargs)
if not filtr or prefix + "upstream_finds" in filtr:
values[prefix + "upstream_finds"] = " ; ".join(
- [str(up) for up in self.upstream.all()])
+ str(up) for up in self.upstream.all()
+ )
+
if not filtr or prefix + "downstream_finds" in filtr:
values[prefix + "downstream_finds"] = " ; ".join(
- [str(up) for up in self.downstream.all()])
+ str(up) for up in self.downstream.all()
+ )
+
if not filtr or prefix + "operations" in filtr:
values[prefix + "operations"] = " ; ".join(
- [str(ope) for ope in self.get_query_operations().all()])
+ str(ope) for ope in self.get_query_operations().all()
+ )
+
if 'associatedfind_' not in prefix and self.upstream.count():
find = self.upstream.all()[0]
new_prefix = prefix + 'associatedfind_'
@@ -382,13 +385,13 @@ class Treatment(DashboardFormItem, ValueGetter, DocumentItem,
resulting_find['history_modifier'] = self.history_modifier
new_find = Find.objects.create(**resulting_find)
- for k in m2m:
+ for k, v in m2m.items():
m2m_field = getattr(new_find, k)
try:
for value in m2m[k]:
m2m_field.add(value)
except TypeError:
- m2m_field.add(m2m[k])
+ m2m_field.add(v)
create_new_find = bool([tp for tp in treatment_types
if tp.create_new_find])
@@ -399,11 +402,11 @@ class Treatment(DashboardFormItem, ValueGetter, DocumentItem,
# datings are not explicitly part of the resulting_find
# need to reassociate with no duplicate
for dating in upstream_item.datings.all():
- is_present = False
- for current_dating in new_find.datings.all():
- if Dating.is_identical(current_dating, dating):
- is_present = True
- break
+ is_present = any(
+ Dating.is_identical(current_dating, dating)
+ for current_dating in new_find.datings.all()
+ )
+
if is_present:
continue
dating.pk = None # duplicate
@@ -617,8 +620,10 @@ class Treatment(DashboardFormItem, ValueGetter, DocumentItem,
@property
def associated_filename(self):
- return "-".join([str(slugify(getattr(self, attr)))
- for attr in ('year', 'index', 'label')])
+ return "-".join(
+ str(slugify(getattr(self, attr)))
+ for attr in ('year', 'index', 'label')
+ )
post_save.connect(cached_label_changed, sender=Treatment)
@@ -649,31 +654,31 @@ for attr in Treatment.HISTORICAL_M2M:
class AbsFindTreatments(models.Model):
- find = models.ForeignKey(Find, verbose_name=_(u"Find"),
+ find = models.ForeignKey(Find, verbose_name=_("Find"),
related_name='%(class)s_related')
- treatment = models.OneToOneField(Treatment, verbose_name=_(u"Treatment"),
+ treatment = models.OneToOneField(Treatment, verbose_name=_("Treatment"),
primary_key=True)
# primary_key is set to prevent django to ask for an id column
# treatment is not a real primary key
- treatment_nb = models.IntegerField(_(u"Order"))
+ treatment_nb = models.IntegerField(_("Order"))
TABLE_COLS = ["treatment__" + col for col in Treatment.TABLE_COLS] + \
['treatment_nb']
COL_LABELS = {
- 'treatment__treatment_type': _(u"Treatment type"),
- 'treatment__start_date': _(u"Start date"),
- 'treatment__end_date': _(u"End date"),
- 'treatment__location': _(u"Location"),
- 'treatment__container': _(u"Container"),
- 'treatment__person': _(u"Doer"),
- 'treatment__upstream': _(u"Related finds"),
- 'treatment__downstream': _(u"Related finds"),
+ 'treatment__treatment_type': _("Treatment type"),
+ 'treatment__start_date': _("Start date"),
+ 'treatment__end_date': _("End date"),
+ 'treatment__location': _("Location"),
+ 'treatment__container': _("Container"),
+ 'treatment__person': _("Doer"),
+ 'treatment__upstream': _("Related finds"),
+ 'treatment__downstream': _("Related finds"),
}
class Meta:
abstract = True
def __str__(self):
- return u"{} - {} [{}]".format(
+ return "{} - {} [{}]".format(
self.find, self.treatment, self.treatment_nb)
@@ -876,7 +881,7 @@ class FindTreatments(AbsFindTreatments):
DELETE_SQL = """
DROP VIEW IF EXISTS find_treatments;
"""
- upstream = models.BooleanField(_(u"Is upstream"))
+ upstream = models.BooleanField(_("Is upstream"))
class Meta:
managed = False
@@ -889,8 +894,8 @@ class TreatmentFileType(GeneralType):
treatment_type = models.ForeignKey(TreatmentType, blank=True, null=True)
class Meta:
- verbose_name = _(u"Treatment request type")
- verbose_name_plural = _(u"Treatment request types")
+ verbose_name = _("Treatment request type")
+ verbose_name_plural = _("Treatment request types")
ordering = ('label',)
@@ -985,32 +990,32 @@ class TreatmentFile(DashboardFormItem, ClosedItem, DocumentItem,
'exhibition_end_date__gte']
# fields
- 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,
+ year = models.IntegerField(_("Year"), default=get_current_year)
+ index = models.IntegerField(_("Index"), default=1)
+ internal_reference = models.CharField(_("Internal reference"), blank=True,
null=True, max_length=200)
- external_id = models.CharField(_(u"External ID"), blank=True, null=True,
+ external_id = models.CharField(_("External ID"), blank=True, null=True,
max_length=200)
name = models.TextField(_("Name"), blank=True, default="")
type = models.ForeignKey(TreatmentFileType,
- verbose_name=_(u"Treatment request type"))
+ verbose_name=_("Treatment request type"))
in_charge = models.ForeignKey(
Person, related_name='treatmentfile_responsability',
- verbose_name=_(u"Person in charge"), on_delete=models.SET_NULL,
+ verbose_name=_("Person in charge"), on_delete=models.SET_NULL,
blank=True, null=True)
applicant = models.ForeignKey(
Person, related_name='treatmentfile_applicant',
- verbose_name=_(u"Applicant"), on_delete=models.SET_NULL,
+ verbose_name=_("Applicant"), on_delete=models.SET_NULL,
blank=True, null=True)
applicant_organisation = models.ForeignKey(
Organization, related_name='treatmentfile_applicant',
- verbose_name=_(u"Applicant organisation"), on_delete=models.SET_NULL,
+ verbose_name=_("Applicant organisation"), on_delete=models.SET_NULL,
blank=True, null=True)
- end_date = models.DateField(_(u"Closing date"), null=True, blank=True)
+ end_date = models.DateField(_("Closing date"), null=True, blank=True)
creation_date = models.DateField(
- _(u"Creation date"), default=datetime.date.today, blank=True,
+ _("Creation date"), default=datetime.date.today, blank=True,
null=True)
- reception_date = models.DateField(_(u'Reception date'), blank=True,
+ reception_date = models.DateField(_('Reception date'), blank=True,
null=True)
# exhibition
exhibition_name = models.TextField(_("Exhibition name"), blank=True,
@@ -1022,12 +1027,12 @@ class TreatmentFile(DashboardFormItem, ClosedItem, DocumentItem,
comment = models.TextField(_("Comment"), blank=True, default="")
documents = models.ManyToManyField(
- Document, related_name='treatment_files', verbose_name=_(u"Documents"),
+ Document, related_name='treatment_files', verbose_name=_("Documents"),
blank=True)
main_image = models.ForeignKey(
Document, related_name='main_image_treatment_files',
on_delete=models.SET_NULL,
- verbose_name=_(u"Main image"), blank=True, null=True)
+ verbose_name=_("Main image"), blank=True, null=True)
associated_basket = models.ForeignKey(
FindBasket, null=True, blank=True, on_delete=models.SET_NULL,
related_name='treatment_files'
@@ -1037,20 +1042,20 @@ class TreatmentFile(DashboardFormItem, ClosedItem, DocumentItem,
history = HistoricalRecords()
class Meta:
- verbose_name = _(u"Treatment request")
- verbose_name_plural = _(u"Treatment requests")
+ verbose_name = _("Treatment request")
+ verbose_name_plural = _("Treatment requests")
unique_together = ('year', 'index')
permissions = (
("view_treatmentfile",
- u"Can view all Treatment requests"),
+ "Can view all Treatment requests"),
("view_own_treatmentfile",
- u"Can view own Treatment request"),
+ "Can view own Treatment request"),
("add_own_treatmentfile",
- u"Can add own Treatment request"),
+ "Can add own Treatment request"),
("change_own_treatmentfile",
- u"Can change own Treatment request"),
+ "Can change own Treatment request"),
("delete_own_treatmentfile",
- u"Can delete own Treatment request"),
+ "Can delete own Treatment request"),
)
ordering = ('cached_label',)
indexes = [
@@ -1062,7 +1067,7 @@ class TreatmentFile(DashboardFormItem, ClosedItem, DocumentItem,
@property
def short_class_name(self):
- return _(u"Treatment request")
+ return _("Treatment request")
@classmethod
def get_query_owns(cls, ishtaruser):
@@ -1072,9 +1077,11 @@ class TreatmentFile(DashboardFormItem, ClosedItem, DocumentItem,
@property
def associated_filename(self):
- return "-".join([str(slugify(getattr(self, attr)))
- for attr in ('year', 'index', 'internal_reference',
- 'name') if getattr(self, attr)])
+ return "-".join(
+ str(slugify(getattr(self, attr)))
+ for attr in ('year', 'index', 'internal_reference', 'name')
+ if getattr(self, attr)
+ )
def get_extra_actions(self, request):
# url, base_text, icon, extra_text, extra css class, is a quick action
@@ -1082,8 +1089,8 @@ class TreatmentFile(DashboardFormItem, ClosedItem, DocumentItem,
if self.can_do(request, 'add_administrativeact'):
actions += [
(reverse('treatmentfile-add-adminact', args=[self.pk]),
- _(u"Add associated administrative act"), "fa fa-plus",
- _(u"admin. act"), "", False),
+ _("Add associated administrative act"), "fa fa-plus",
+ _("admin. act"), "", False),
]
if not self.associated_basket:
return actions
@@ -1095,7 +1102,7 @@ class TreatmentFile(DashboardFormItem, ClosedItem, DocumentItem,
if can_edit_find:
actions += [
(reverse('treatmentfile-add-treatment', args=[self.pk]),
- _(u"Add associated treatment"), "fa fa-flask", "", "",
+ _("Add associated treatment"), "fa fa-flask", "", "",
False),
]
return actions
@@ -1115,7 +1122,7 @@ class TreatmentFile(DashboardFormItem, ClosedItem, DocumentItem,
return settings.JOINT.join(items)
def _get_base_image_path(self,):
- return u"{}/{}/{}".format(self.SLUG, self.year, self.index)
+ return "{}/{}/{}".format(self.SLUG, self.year, self.index)
def pre_save(self):
# is not new