def update_anc_info(request): if request.GET.get('smd'): form_class = SMDUpdateForm info_fields = commissioner_info_fields else: form_class = ANCUpdateForm info_fields = ['committees'] # Submitted. if request.method == 'POST': form = form_class(request.POST) if form.is_valid(): smd = form.cleaned_data['smd'] if request.POST.get('smd') else None for f in info_fields: try: if form.cleaned_data[f] == CommissionerInfo.get(form.cleaned_data['anc'], smd, f): # Nothing to update. continue except CommissionerInfo.DoesNotExist: pass CommissionerInfo.put( request.user, form.cleaned_data['anc'], smd, f, form.cleaned_data[f], ) # Redirect to the ANC the user uploaded info about. return HttpResponseRedirect('/' + form.cleaned_data['anc'].upper()) else: # A empty, unbound form. initial = { "anc": request.GET.get("anc"), "smd": request.GET.get("smd"), } for f in info_fields: try: initial[f] = CommissionerInfo.get(request.GET.get("anc"), request.GET.get("smd") or None, f) except CommissionerInfo.DoesNotExist: pass form = form_class(initial=initial) return render_to_response( 'ancfindersite/anc-update-form.html', { 'form': form }, context_instance=RequestContext(request) )
def handle(self, path_to_json, *args, **options): if CommissionerInfo.objects.filter( field_name='committees').count() > 0: print "This script is intended to initialize our database with committee info from ancs.json." return with open(path_to_json) as source_file: anc_data = json.load(source_file) for ward in anc_data.values(): for anc in ward['ancs'].values(): committees = "" for committee in anc['committees'].values(): md = Template("""# {{cmte.committee}} {% if cmte.chair %}Chair: {{ cmte.chair }}{% if cmte.chair_email %} ({{cmte.chair_email}}){% endif %}{% endif %} {{cmte.purpose}} {% if cmte.meetings %} Meetings: {{ cmte.meetings|safe }} {% endif %} """) md = md.render(Context({'cmte': committee})) committees += md if committees.strip() == "": continue try: if CommissionerInfo.get(anc['anc'], None, "committees") == committees: continue except CommissionerInfo.DoesNotExist: pass # Write a new object. CommissionerInfo.put(None, anc['anc'], None, "committees", committees)
def handle(self, path_to_json, *args, **options): if CommissionerInfo.objects.count() > 0: print "This script is intended to initialize our database after an election. There are already objects in the database, so not continuing." return with open(path_to_json) as source_file: scraped_data = json.load(source_file) for ID, fields in scraped_data.items(): anc, smd = ID[:2], ID[2:] for field_name, field_value in fields.items(): # If the scraped data matches what is in the database, # then don't write a new object. try: if field_value == CommissionerInfo.get(anc, smd, field_name): continue except CommissionerInfo.DoesNotExist: pass # Write a new object. CommissionerInfo.put(None, anc, smd, field_name, field_value)
def handle(self, path_to_json, *args, **options): if CommissionerInfo.objects.count() > 0: print "This script is intended to initialize our database after an election. There are already objects in the database, so not continuing." return with open(path_to_json) as source_file: scraped_data = json.load(source_file) for ID, fields in scraped_data.items(): anc, smd = ID[:2], ID[2:] for field_name, field_value in fields.items(): # If the scraped data matches what is in the database, # then don't write a new object. try: if field_value == CommissionerInfo.get( anc, smd, field_name): continue except CommissionerInfo.DoesNotExist: pass # Write a new object. CommissionerInfo.put(None, anc, smd, field_name, field_value)
def handle(self, path_to_json, *args, **options): if CommissionerInfo.objects.filter(field_name='committees').count() > 0: print "This script is intended to initialize our database with committee info from ancs.json." return with open(path_to_json) as source_file: anc_data = json.load(source_file) for ward in anc_data.values(): for anc in ward['ancs'].values(): committees = "" for committee in anc['committees'].values(): md = Template("""# {{cmte.committee}} {% if cmte.chair %}Chair: {{ cmte.chair }}{% if cmte.chair_email %} ({{cmte.chair_email}}){% endif %}{% endif %} {{cmte.purpose}} {% if cmte.meetings %} Meetings: {{ cmte.meetings|safe }} {% endif %} """) md = md.render(Context({ 'cmte': committee })) committees += md if committees.strip() == "": continue try: if CommissionerInfo.get(anc['anc'], None, "committees") == committees: continue except CommissionerInfo.DoesNotExist: pass # Write a new object. CommissionerInfo.put(None, anc['anc'], None, "committees", committees)