diff options
| -rw-r--r-- | archaeological_finds/forms.py | 24 | ||||
| -rw-r--r-- | archaeological_finds/templates/ishtar/sheet_find.html | 13 | ||||
| -rw-r--r-- | ishtar_common/admin.py | 6 | 
3 files changed, 39 insertions, 4 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index d05b67470..11ecf8152 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -31,7 +31,8 @@ from django.forms.formsets import formset_factory  from django.utils.safestring import mark_safe  from django.utils.translation import ugettext_lazy as _ -from ishtar_common.models import valid_id, valid_ids, get_current_profile +from ishtar_common.models import valid_id, valid_ids, get_current_profile, \ +    SpatialReferenceSystem  from archaeological_operations.models import Period, ArchaeologicalSite, \      RelationType as OpeRelationType  from archaeological_context_records.models import DatingType, DatingQuality, \ @@ -128,7 +129,9 @@ class FindForm(ManageOldType, forms.Form):                           'object_type': models.ObjectType,                           'preservation_to_consider': models.PreservationType,                           'integritie': models.IntegrityType, -                         'remarkabilitie': models.RemarkabilityType} +                         'remarkabilitie': models.RemarkabilityType, +                         'get_first_base_find__spatial_reference_system': +                         SpatialReferenceSystem}      label = forms.CharField(          label=_(u"Free ID"),          validators=[validators.MaxLengthValidator(60)]) @@ -172,7 +175,8 @@ class FindForm(ManageOldType, forms.Form):      get_first_base_find__estimated_error_z = \          forms.FloatField(label=_(u"Estimated error for Z"), required=False)      get_first_base_find__spatial_reference_system = \ -        forms.FloatField(label=_(u"Spatial Reference System"), required=False) +        forms.ChoiceField(label=_(u"Spatial Reference System"), required=False, +                          choices=[])      length = FloatField(label=_(u"Length (cm)"), required=False)      width = FloatField(label=_(u"Width (cm)"), required=False)      height = FloatField(label=_(u"Height (cm)"), required=False) @@ -212,6 +216,13 @@ class FindForm(ManageOldType, forms.Form):                        'get_first_base_find__estimated_error_z',                        'get_first_base_find__spatial_reference_system',]:                  self.fields.pop(k) +        else: +            srs = 'get_first_base_find__spatial_reference_system' +            self.fields[srs].choices = \ +                SpatialReferenceSystem.get_types( +                    initial=self.init_data.get(srs)) +            self.fields[srs].help_text = \ +                SpatialReferenceSystem.get_help()          self.fields['checked'].choices = models.CHECK_CHOICES          self.fields['material_type'].help_text = models.MaterialType.get_help()          self.fields['conservatory_state'].choices = \ @@ -246,8 +257,13 @@ class FindForm(ManageOldType, forms.Form):              return self.cleaned_data          x = self.cleaned_data.get('get_first_base_find__x', None)          y = self.cleaned_data.get('get_first_base_find__y', None) -        s = 'get_first_base_find__get_first_base_find__spatial_reference_system' +        s = 'get_first_base_find__spatial_reference_system'          srs = self.cleaned_data.get(s, None) +        if srs: +            try: +                srs = SpatialReferenceSystem.objects.get(pk=srs) +            except SpatialReferenceSystem.DoesNotExist: +                srs = None          if x and y and not srs:              raise forms.ValidationError(                  _(u"You should at least provide X, Y and the spatial " diff --git a/archaeological_finds/templates/ishtar/sheet_find.html b/archaeological_finds/templates/ishtar/sheet_find.html index 0b4ac227d..40ccdd713 100644 --- a/archaeological_finds/templates/ishtar/sheet_find.html +++ b/archaeological_finds/templates/ishtar/sheet_find.html @@ -200,6 +200,19 @@  {% field_li "Parcel" base_find.context_record.parcel %}  {% field_li_detail "Operation" base_find.context_record.operation %}  {% field_li "Point of topographic reference" base_find.topographic_localisation %} + +{% if base_find.x or base_find.y %} +  <li><label>{% trans "Coordinates:" %}</label> +  <span class="value"> +    {% trans "X:"%} {{base_find.x|default_if_none:"-"}}, +    {% trans "Y:"%} {{base_find.y|default_if_none:"-"}}, +    {% trans "Z:"%} {{base_find.z|default_if_none:"-"}} +    {% if base_find.spatial_reference_system %} +    ({{base_find.spatial_reference_system.label}}{% if base_find.spatial_reference_system.srid %} - +     {% trans "SRID:"%} {{base_find.spatial_reference_system.srid}}{% endif %}) +    {% endif %} +  </span> +{% endif %}  </ul>  {% field "Description" base_find.description "<pre>" "</pre>" %} diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py index aa04a7b1c..efb452e74 100644 --- a/ishtar_common/admin.py +++ b/ishtar_common/admin.py @@ -235,6 +235,12 @@ class OperationTypeAdmin(GeneralTypeAdmin):  admin.site.register(models.OperationType, OperationTypeAdmin) +class SpatialReferenceSystemAdmin(GeneralTypeAdmin): +    list_display = GeneralTypeAdmin.list_display + ['order', 'srid'] +    model = models.SpatialReferenceSystem +admin.site.register(models.SpatialReferenceSystem, SpatialReferenceSystemAdmin) + +  class IshtarUserAdmin(admin.ModelAdmin):      readonly_fields = ('password',)  | 
