summaryrefslogtreecommitdiff
path: root/archaeological_operations/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_operations/models.py')
-rw-r--r--archaeological_operations/models.py113
1 files changed, 85 insertions, 28 deletions
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index 872d2bf4e..d8233ba0f 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -108,6 +108,7 @@ class ArchaeologicalSite(BaseHistorizedItem, OwnPerms, ValueGetter,
SHOW_URL = 'show-site'
TABLE_COLS = ['reference', 'name', 'towns_label', 'periods', 'remains']
SLUG = 'site'
+ LONG_SLUG = 'archaeologicalsite'
BASE_SEARCH_VECTORS = [
"comment",
@@ -119,6 +120,8 @@ class ArchaeologicalSite(BaseHistorizedItem, OwnPerms, ValueGetter,
"reference",
"shipwreck_code",
"shipwreck_name",
+ "drassm_number",
+ "affmar_number",
]
M2M_SEARCH_VECTORS = ["periods__label", "remains__label", "towns__name"]
PARENT_SEARCH_VECTORS = ['operations']
@@ -192,6 +195,14 @@ class ArchaeologicalSite(BaseHistorizedItem, OwnPerms, ValueGetter,
pgettext_lazy("key for text search", u"top-operation"),
'top_operation__cached_label__icontains'
),
+ 'drassm_number': (
+ pgettext_lazy("key for text search", u"numero-drassm"),
+ 'drassm_number__iexact'
+ ),
+ 'affmar_number': (
+ pgettext_lazy("key for text search", u"numero-affmar"),
+ 'affmar_number__iexact'
+ ),
}
for v in ALT_NAMES.values():
for language_code, language_lbl in settings.LANGUAGES:
@@ -243,6 +254,10 @@ class ArchaeologicalSite(BaseHistorizedItem, OwnPerms, ValueGetter,
_(u"Sinking date"), null=True, blank=True)
discovery_area = models.TextField(
_(u"Discovery area"), null=True, blank=True)
+ affmar_number = models.CharField(_(u"AffMar number"), max_length=100,
+ null=True, blank=True)
+ drassm_number = models.CharField(_(u"DRASSM number"), max_length=100,
+ null=True, blank=True)
# gis
point = models.PointField(_(u"Point"), blank=True, null=True)
@@ -290,6 +305,9 @@ class ArchaeologicalSite(BaseHistorizedItem, OwnPerms, ValueGetter,
'operations__context_record__base_finds__find__container__responsible__',
Warehouse._get_query_owns_dicts(ishtaruser)
) | cls._construct_query_own(
+ 'operations__context_record__base_finds__find__basket__',
+ [{"shared_with": ishtaruser, "shared_write_with": ishtaruser}]
+ ) | cls._construct_query_own(
'operations__context_record__base_finds__find__container__location__',
Warehouse._get_query_owns_dicts(ishtaruser)
) | cls._construct_query_own(
@@ -541,6 +559,7 @@ class Operation(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter,
"scientist__cached_label",
"scientific_documentation_comment",
"seizure_name",
+ "drassm_code",
]
PROPERTY_SEARCH_VECTORS = [
"full_reference", "short_code_patriarche"
@@ -705,6 +724,10 @@ class Operation(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter,
pgettext_lazy("key for text search", u"finds-deadline-after"),
'finds_deadline__gte'
),
+ 'drassm_code': (
+ pgettext_lazy("key for text search", u"code-drassm"),
+ 'drassm_code__iexact'
+ ),
}
for v in ALT_NAMES.values():
for language_code, language_lbl in settings.LANGUAGES:
@@ -783,34 +806,35 @@ class Operation(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter,
blank=True, null=True)
old_code = models.CharField(_(u"Old code"), max_length=200, null=True,
blank=True)
- if settings.COUNTRY == 'fr':
- code_patriarche = models.TextField(u"Code PATRIARCHE", null=True,
- blank=True, unique=True)
- TABLE_COLS = ['code_patriarche'] + TABLE_COLS
- BASE_SEARCH_VECTORS = ['code_patriarche'] + BASE_SEARCH_VECTORS
- # preventive
- fnap_financing = models.FloatField(u"Financement FNAP (%)",
- blank=True, null=True)
- # preventive
- fnap_cost = models.IntegerField(u"Financement FNAP (€)",
- blank=True, null=True)
- # preventive diag
- zoning_prescription = models.NullBooleanField(
- _(u"Prescription on zoning"), blank=True, null=True)
- # preventive diag
- large_area_prescription = models.NullBooleanField(
- _(u"Prescription on large area"), blank=True, null=True)
- geoarchaeological_context_prescription = models.NullBooleanField(
- _(u"Prescription on geoarchaeological context"), blank=True,
- null=True) # preventive diag
- cira_rapporteur = models.ForeignKey(
- Person, related_name='cira_rapporteur', null=True, blank=True,
- on_delete=models.SET_NULL, verbose_name=u"Rapporteur CIRA")
- negative_result = models.NullBooleanField(
- u"Résultat considéré comme négatif", blank=True, null=True)
- cira_date = models.DateField(u"Date avis CIRA", null=True, blank=True)
- eas_number = models.CharField(u"Numéro de l'EA", max_length=20,
- null=True, blank=True)
+ ## fr
+ code_patriarche = models.TextField(u"Code PATRIARCHE", null=True,
+ blank=True, unique=True)
+ TABLE_COLS = ['code_patriarche'] + TABLE_COLS
+ BASE_SEARCH_VECTORS = ['code_patriarche'] + BASE_SEARCH_VECTORS
+ # preventive
+ fnap_financing = models.FloatField(u"Financement FNAP (%)",
+ blank=True, null=True)
+ # preventive
+ fnap_cost = models.IntegerField(u"Financement FNAP (€)",
+ blank=True, null=True)
+ # preventive diag
+ zoning_prescription = models.NullBooleanField(
+ _(u"Prescription on zoning"), blank=True, null=True)
+ # preventive diag
+ large_area_prescription = models.NullBooleanField(
+ _(u"Prescription on large area"), blank=True, null=True)
+ geoarchaeological_context_prescription = models.NullBooleanField(
+ _(u"Prescription on geoarchaeological context"), blank=True,
+ null=True) # preventive diag
+ cira_rapporteur = models.ForeignKey(
+ Person, related_name='cira_rapporteur', null=True, blank=True,
+ on_delete=models.SET_NULL, verbose_name=u"Rapporteur CIRA")
+ negative_result = models.NullBooleanField(
+ u"Résultat considéré comme négatif", blank=True, null=True)
+ cira_date = models.DateField(u"Date avis CIRA", null=True, blank=True)
+ eas_number = models.CharField(u"Numéro de l'EA", max_length=20,
+ null=True, blank=True)
+ ## end fr
operator_reference = models.CharField(
_(u"Operator reference"), max_length=20, null=True, blank=True)
common_name = models.TextField(_(u"Generic name"), null=True, blank=True)
@@ -845,6 +869,9 @@ class Operation(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter,
finds_received = models.NullBooleanField(
_(u"Finds received"), blank=True, null=True)
+ # underwater
+ drassm_code = models.CharField(_(u"DRASSM code"), max_length=100,
+ null=True, blank=True)
# judiciary
seizure_name = models.TextField(_(u"Seizure name"), blank=True, null=True)
official_report_number = models.TextField(_(u"Official report number"),
@@ -1040,6 +1067,22 @@ class Operation(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter,
finds__base_finds__context_record__operation=self
)
+ def get_extra_actions(self, request):
+ """
+ For sheet template
+ """
+ # url, base_text, icon, extra_text, extra css class, is a quick action
+ actions = super(Operation, self).get_extra_actions(request)
+
+ can_add_cr = self.can_do(request, 'add_contextrecord')
+ if can_add_cr:
+ actions += [
+ (reverse('operation-qa-contextrecord', args=[self.pk]),
+ _(u"Add context record"), "fa fa-plus",
+ _(u"context record"), "", True),
+ ]
+ return actions
+
associated_file_short_label_lbl = _(u"Archaeological file")
full_code_patriarche_lbl = _(u"Code patriarche")
@@ -1131,6 +1174,9 @@ class Operation(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter,
'context_record__base_finds__find__container__location__',
Warehouse._get_query_owns_dicts(ishtaruser)
) | cls._construct_query_own(
+ 'context_record__base_finds__find__basket__',
+ [{"shared_with": ishtaruser, "shared_write_with": ishtaruser}]
+ ) | cls._construct_query_own(
'', cls._get_query_owns_dicts(ishtaruser)
)
return q
@@ -1461,6 +1507,7 @@ class AdministrativeAct(BaseHistorizedItem, OwnPerms, ValueGetter):
'act_object', 'signature_date',
'associated_file__cached_label',
'operation__cached_label', 'towns_label']
+ SLUG = "administrativeact"
TABLE_COLS_FILE = [
'full_ref', 'year', 'index', 'act_type',
'act_object', 'associated_file', 'towns_label',
@@ -1826,6 +1873,16 @@ class AdministrativeAct(BaseHistorizedItem, OwnPerms, ValueGetter):
if self.treatment_file:
return self.treatment_file
+ def get_extra_templates(self, request):
+ templates = []
+ for template in self.act_type.associated_template.all():
+ urlname = "generatedoc-administrativeactop"
+ templates.append(
+ (template.name, reverse(
+ urlname, args=[self.pk, template.pk]))
+ )
+ return templates
+
def get_filename(self):
filename = self.related_item.associated_filename
filename = u"-".join(filename.split('-')[:-1]) # remove date