コード例 #1
0
ファイル: backend_views.py プロジェクト: nadaj/ancfinder
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)
	)
コード例 #2
0
    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)
コード例 #3
0
ファイル: bringscraped.py プロジェクト: dfdx2/ancfinder
    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)
コード例 #4
0
ファイル: bringscraped.py プロジェクト: sleitner/ancfinder
    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)
コード例 #5
0
    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)