Skip to content

Instantly share code, notes, and snippets.

@cesandoval
Created August 8, 2012 22:57
Show Gist options
  • Save cesandoval/3299563 to your computer and use it in GitHub Desktop.
Save cesandoval/3299563 to your computer and use it in GitHub Desktop.
hidden id
#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),
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment