summaryrefslogtreecommitdiff
path: root/archaeological_finds/forms.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_finds/forms.py')
-rw-r--r--archaeological_finds/forms.py41
1 files changed, 27 insertions, 14 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py
index 5fcf57a27..90805e656 100644
--- a/archaeological_finds/forms.py
+++ b/archaeological_finds/forms.py
@@ -56,7 +56,7 @@ from ishtar_common import widgets
from ishtar_common.forms import CustomForm, CustomFormSearch, FormSet, \
FloatField, reverse_lazy, TableSelect, get_now, FinalForm, \
ManageOldType, FieldType, IshtarForm, FormHeader, QAForm, HistorySelect, \
- MultiSearchForm, LockForm
+ MultiSearchForm, LockForm, DocumentItemSelect
from ishtar_common.forms_common import get_town_field
from ishtar_common.models import valid_id, valid_ids, get_current_profile, \
SpatialReferenceSystem, Area, OperationType, IshtarUser
@@ -524,8 +524,8 @@ class ResultingFindsForm(CustomForm, ManageOldType):
label=_(u"Prefix label for resulting finds"),
validators=[validators.MaxLengthValidator(200)],
help_text=_(
- u'E.g.: with a prefix "item-", each resulting item will be named '
- u'"item-1", "item-2", "item-3"')
+ 'E.g.: with a prefix "item-", each resulting item will be named '
+ '"item-1", "item-2", "item-3"')
)
resultings_start_number = forms.IntegerField(
label=_(u"Numbering starting from"), initial=1, min_value=0
@@ -569,12 +569,14 @@ class QAFindFormMulti(QAForm):
'qa_checked_type': models.CheckedType,
'qa_period': Period,
"qa_conservatory_state": models.ConservatoryState,
+ "qa_treatment_emergency": models.TreatmentEmergencyType,
}
MULTI = True
REPLACE_FIELDS = [
'qa_denomination', 'qa_ue', 'qa_manufacturing_place', 'qa_checked_type',
- 'qa_check_date', 'qa_conservatory_state'
+ 'qa_check_date', 'qa_conservatory_state', 'qa_treatment_emergency',
+ 'qa_appraisal_date',
]
HEADERS = {
@@ -629,8 +631,10 @@ class QAFindFormMulti(QAForm):
qa_alteration_causes = widgets.Select2MultipleField(
label=_(u"Alteration cause"), required=False
)
- qa_conservatory_state= forms.ChoiceField(label=_("Conservatory state"),
- required=False, choices=[])
+ qa_conservatory_state = forms.ChoiceField(label=_("Conservatory state"),
+ required=False, choices=[])
+ qa_treatment_emergency = forms.ChoiceField(label=_("Treatment emergency"),
+ choices=[], required=False)
qa_comment = forms.CharField(
label=_(u"Comment"), required=False,
widget=forms.Textarea)
@@ -638,6 +642,8 @@ class QAFindFormMulti(QAForm):
qa_checked_type = forms.ChoiceField(label=_(u"Check"), required=False)
qa_check_date = forms.DateField(
label=_(u"Check date"), widget=DatePicker, required=False)
+ qa_appraisal_date = forms.DateField(
+ label=_("Appraisal date"), widget=DatePicker, required=False)
qa_period = widgets.Select2MultipleField(
label=_("Period"), choices=[], required=False)
@@ -655,6 +661,7 @@ class QAFindFormMulti(QAForm):
is_multiple=True),
FieldType('qa_checked_type', models.CheckedType),
FieldType('qa_conservatory_state', models.ConservatoryState),
+ FieldType('qa_treatment_emergency', models.TreatmentEmergencyType),
FieldType('qa_period', Period, is_multiple=True),
]
@@ -726,6 +733,12 @@ class QAFindBasketForm(IshtarForm):
if not self.cleaned_data['qa_bf_basket']:
raise forms.ValidationError(
_(u"On update, you have to select a basket."))
+ q = Q(user=self.user) | Q(shared_write_with__pk=self.user.pk)
+ q = models.FindBasket.objects.filter(q).filter(
+ pk=self.cleaned_data['qa_bf_basket'])
+ if not q.count():
+ raise forms.ValidationError(
+ _("You cannot update the selected basket."))
return self.cleaned_data
label = self.cleaned_data['qa_bf_label'].strip()
if not label:
@@ -738,8 +751,9 @@ class QAFindBasketForm(IshtarForm):
def save(self, items):
if self.cleaned_data['qa_bf_create_or_update'] == 'update':
- basket = models.FindBasket.objects.get(
- user=self.user, pk=self.cleaned_data['qa_bf_basket'])
+ q = Q(user=self.user) | Q(shared_write_with__pk=self.user.pk)
+ basket = models.FindBasket.objects.filter(q).get(
+ pk=self.cleaned_data['qa_bf_basket'])
else:
label = self.cleaned_data['qa_bf_label'].strip()
basket = models.FindBasket.objects.create(
@@ -763,7 +777,7 @@ class QAFindDuplicateForm(IshtarForm):
self.find = kwargs.pop('items')[0]
super(QAFindDuplicateForm, self).__init__(*args, **kwargs)
self.fields['label'].initial = self.find.label + str(
- _(u" - duplicate"))
+ _(" - duplicate"))
self.fields['denomination'].initial = self.find.denomination or ""
def save(self):
@@ -894,9 +908,9 @@ DatingFormSet.form_admin_name = _(u"Find - 040 - Dating")
DatingFormSet.form_slug = "find-040-dating"
-class FindSelect(HistorySelect):
+class FindSelect(DocumentItemSelect):
_model = models.Find
- form_admin_name = _(u"Find - 001 - Search")
+ form_admin_name = _("Find - 001 - Search")
form_slug = "find-001-search"
FORM_FILTERS = [
(_(u"Find origin"), [
@@ -1037,9 +1051,9 @@ class FindSelect(HistorySelect):
reverse_lazy('autocomplete-materialtype'),
associated_model=models.MaterialType),
)
- material_type_quality = forms.ChoiceField(label=_(u"Material type quality"),
+ material_type_quality = forms.ChoiceField(label=_("Material type quality"),
choices=[])
- material_comment = forms.CharField(label=_(u"Comment on the material"))
+ material_comment = forms.CharField(label=_("Comment on the material"))
object_types = forms.IntegerField(
label=_(u"Object type"),
widget=widgets.JQueryAutoComplete(
@@ -1168,7 +1182,6 @@ class FindSelect(HistorySelect):
appraisal_date__before = forms.DateField(
label=_(u"Appraisal date before"), widget=DatePicker)
- documents__image__isnull = forms.NullBooleanField(label=_(u"Has an image?"))
loan = forms.NullBooleanField(label=_(u"Loan?"))
treatments_file_end_date = forms.DateField(
label=_(u"Treatment file end date before"), widget=DatePicker