|
#from models.py |
|
class DataLayer(Named, Authored, Dated, Noted): |
|
geometry_type = models.CharField(max_length=50, null=True, blank=True) |
|
srs = models.CharField(max_length=50, null=True, blank=True) |
|
files = models.ManyToManyField('DataFile', null=True, blank=True ) |
|
layer_id = models.AutoField(primary_key=True) |
|
def __unicode__(self): |
|
return "DataLayer: %s" % self.name |
|
|
|
#from forms.py |
|
class LayerReviewForm(forms.ModelForm): |
|
"""For editing and configuring the layer information for each layer.""" |
|
class Meta: |
|
model = DataLayer |
|
|
|
fields = ['name', 'notes', 'geometry_type', 'srs','layer_id'] |
|
exclude = ["layer_id"] |
|
|
|
'''def __init__(self, *args, **kwargs): |
|
from django.forms.widgets import HiddenInput |
|
hide_condition = kwargs.pop('hide_condition',None) |
|
super(LayerReviewForm, self).__init__(*args, **kwargs) |
|
if hide_condition: |
|
self.fields['layer_id'].widget = HiddenInput()''' |
|
|
|
#from views.py |
|
@login_required |
|
def review(request): |
|
"""A view for uploading new data. |
|
""" |
|
|
|
user=User.objects.get(username='carlos') |
|
if request.method == 'POST': # someone is giving us data |
|
formset = LayerReviewFormSet(request.POST) |
|
if formset.is_valid(): |
|
for form in formset: |
|
srs = form.cleaned_data['srs'] |
|
layer = DataLayer(srs = srs) |
|
layer = form.save(commit=False) |
|
layer.author = user |
|
layer.save() |
|
|
|
#not sure of how to pass the hidden value to the DataLayer |
|
#layer_id = DataLayer(layer_id = layer_id) |
|
#layer_id = form.save(commit=False) |
|
#layer_id.author = user |
|
#layer_id.save() |
|
|
|
else: # we are asking them to review data |
|
# get the last upload of this user |
|
upload = UploadEvent.objects.filter(user=user).order_by('-date')[0] |
|
data_files = DataFile.objects.filter(upload=upload) |
|
layer_data = [ f.get_layer_data() for f in data_files ] |
|
formset = LayerReviewFormSet( initial=layer_data ) |
|
|
|
c = { |
|
'formset':formset, |
|
} |
|
return render_to_response( |
|
'webfinches/review.html', |
|
RequestContext(request, c), |
|
) |