Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 42 additions & 1 deletion django_project/imagery_requests/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ class ImageryRequestForm(forms.ModelForm):
widget=forms.Textarea({'hidden': ''}),
error_messages={'required': 'Please select an area of interest.'}
)
multipolygon_errors = forms.CharField(
widget=forms.Textarea({'hidden': ''}),
required=False
)

class Meta:
model = ImageryRequest
Expand All @@ -34,9 +38,31 @@ def __init__(self, *args, **kwargs):
{'required': 'Please select a question set.'}
)

def clean(self):
cleaned_data = self.cleaned_data
cleaned_area_of_interest = cleaned_data.get('area_of_interest')

if cleaned_area_of_interest:
multipolygon_errors = cleaned_data.get('multipolygon_errors')

if multipolygon_errors:
msg = 'Fix errors. ' + multipolygon_errors
self._errors['area_of_interest'] = self.error_class([msg])

del cleaned_data['area_of_interest']

return cleaned_data


class ImageryRequestEditForm(forms.ModelForm):
area_of_interest = forms.CharField(widget=forms.Textarea({'hidden': ''}))
area_of_interest = forms.CharField(
widget=forms.Textarea({'hidden': ''}),
error_messages={'required': 'Please select an area of interest.'}
)
multipolygon_errors = forms.CharField(
widget=forms.Textarea({'hidden': ''}),
required=False
)

class Meta:
model = ImageryRequest
Expand Down Expand Up @@ -66,6 +92,21 @@ def __init__(self, *args, **kwargs):
self.fields['question_set'].choices
)

def clean(self):
cleaned_data = self.cleaned_data
cleaned_area_of_interest = cleaned_data.get('area_of_interest')

if cleaned_area_of_interest:
multipolygon_errors = cleaned_data.get('multipolygon_errors')

if multipolygon_errors:
msg = 'Fix errors. ' + multipolygon_errors
self._errors['area_of_interest'] = self.error_class([msg])

del cleaned_data['area_of_interest']

return cleaned_data


class RequestDateForm(forms.ModelForm):
date = forms.DateField(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# -*- coding: utf-8 -*-
from south.utils import datetime_utils as datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models


class Migration(SchemaMigration):

def forwards(self, orm):
# Deleting field 'ImageryRequest.area_of_interest'
db.delete_column(u'imagery_requests_imageryrequest', 'area_of_interest')


def backwards(self, orm):
# Adding field 'ImageryRequest.area_of_interest'
db.add_column(u'imagery_requests_imageryrequest', 'area_of_interest',
self.gf('django.contrib.gis.db.models.fields.PolygonField')(default=1),
keep_default=False)


models = {
u'auth.group': {
'Meta': {'object_name': 'Group'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
},
u'auth.permission': {
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
u'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
},
u'imagery_requests.customuser': {
'Meta': {'object_name': 'CustomUser'},
'address': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
'phone': ('django.db.models.fields.CharField', [], {'max_length': '15'}),
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}),
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
},
u'imagery_requests.imageryrequest': {
'Meta': {'object_name': 'ImageryRequest'},
'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created'", 'to': u"orm['imagery_requests.CustomUser']"}),
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'question_set': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['questions.QuestionSet']", 'null': 'True'}),
'request_lead': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'request_lead'", 'null': 'True', 'to': u"orm['imagery_requests.CustomUser']"}),
'status': ('django.db.models.fields.related.ForeignKey', [], {'default': '1', 'to': u"orm['imagery_requests.RequestStatus']"}),
'title': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
u'imagery_requests.requestdate': {
'Meta': {'object_name': 'RequestDate'},
'date': ('django.db.models.fields.DateField', [], {}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'imagery_request': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['imagery_requests.ImageryRequest']"}),
'time': ('django.db.models.fields.TimeField', [], {'default': 'datetime.time(0, 0)', 'null': 'True', 'blank': 'True'})
},
u'imagery_requests.requeststatus': {
'Meta': {'object_name': 'RequestStatus'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'title': ('django.db.models.fields.CharField', [], {'max_length': '15'})
},
u'questions.question': {
'Meta': {'object_name': 'Question'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'text': ('django.db.models.fields.TextField', [], {})
},
u'questions.questionset': {
'Meta': {'object_name': 'QuestionSet'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'questions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['questions.Question']", 'symmetrical': 'False'}),
'title': ('django.db.models.fields.CharField', [], {'max_length': '30'})
}
}

complete_apps = ['imagery_requests']
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
# -*- coding: utf-8 -*-
from south.utils import datetime_utils as datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models


class Migration(SchemaMigration):

def forwards(self, orm):
# Adding field 'ImageryRequest.area_of_interest'
db.add_column(u'imagery_requests_imageryrequest', 'area_of_interest',
self.gf('django.contrib.gis.db.models.fields.MultiPolygonField')(),
keep_default=False)


def backwards(self, orm):
# Deleting field 'ImageryRequest.area_of_interest'
db.delete_column(u'imagery_requests_imageryrequest', 'area_of_interest')


models = {
u'auth.group': {
'Meta': {'object_name': 'Group'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
},
u'auth.permission': {
'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'},
'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
u'contenttypes.contenttype': {
'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
},
u'imagery_requests.customuser': {
'Meta': {'object_name': 'CustomUser'},
'address': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
'phone': ('django.db.models.fields.CharField', [], {'max_length': '15'}),
'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}),
'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
},
u'imagery_requests.imageryrequest': {
'Meta': {'object_name': 'ImageryRequest'},
'area_of_interest': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {}),
'created_by': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'created'", 'to': u"orm['imagery_requests.CustomUser']"}),
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'question_set': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['questions.QuestionSet']", 'null': 'True'}),
'request_lead': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'request_lead'", 'null': 'True', 'to': u"orm['imagery_requests.CustomUser']"}),
'status': ('django.db.models.fields.related.ForeignKey', [], {'default': '1', 'to': u"orm['imagery_requests.RequestStatus']"}),
'title': ('django.db.models.fields.CharField', [], {'max_length': '50'})
},
u'imagery_requests.requestdate': {
'Meta': {'object_name': 'RequestDate'},
'date': ('django.db.models.fields.DateField', [], {}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'imagery_request': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['imagery_requests.ImageryRequest']"}),
'time': ('django.db.models.fields.TimeField', [], {'default': 'datetime.time(0, 0)', 'null': 'True', 'blank': 'True'})
},
u'imagery_requests.requeststatus': {
'Meta': {'object_name': 'RequestStatus'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'title': ('django.db.models.fields.CharField', [], {'max_length': '15'})
},
u'questions.question': {
'Meta': {'object_name': 'Question'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'text': ('django.db.models.fields.TextField', [], {})
},
u'questions.questionset': {
'Meta': {'object_name': 'QuestionSet'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'questions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['questions.Question']", 'symmetrical': 'False'}),
'title': ('django.db.models.fields.CharField', [], {'max_length': '30'})
}
}

complete_apps = ['imagery_requests']
2 changes: 1 addition & 1 deletion django_project/imagery_requests/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ class ImageryRequest(TimeStampedModelMixin, models.Model):
created_by = models.ForeignKey(
settings.AUTH_USER_MODEL, related_name='created'
)
area_of_interest = models.PolygonField(
area_of_interest = models.MultiPolygonField(
srid=4326, help_text='Imagery request area of interest'
)
status = models.ForeignKey(
Expand Down
Loading