def try_postcode_first(request): match = r_postcode.search(request.GET['q'].upper()) if match: postcode = match.group(1) + " " + match.group(2) try: x = InternalXref.objects.filter(schema='edid_postcode', text_value=postcode)[0] edid = x.target_id except IndexError: edid = postcode_to_edid(postcode) if edid: InternalXref.objects.get_or_create(schema='edid_postcode', text_value=postcode, target_id=edid) if edid: try: member = ElectedMember.objects.get(end_date__isnull=True, riding__edid=edid) return adaptive_redirect(request, member.politician.get_absolute_url()) except ElectedMember.DoesNotExist: return flatpage_response(request, u"Ain’t nobody lookin’ out for you", mark_safe(u"""It looks like that postal code is in the riding of %s. There is no current Member of Parliament for that riding. By law, a byelection must be called within 180 days of a resignation causing a vacancy. (If you think we’ve got our facts wrong about your riding or MP, please send an <a class='maillink'>e-mail</a>.)""" % Riding.objects.get(edid=edid).dashed_name)) except ElectedMember.MultipleObjectsReturned: raise Exception("Too many MPs for postcode %s" % postcode) return False
def try_postcode_first(request): match = r_postcode.search(request.GET['q'].upper()) if match: postcode = match.group(1) + " " + match.group(2) try: x = InternalXref.objects.filter(schema='edid_postcode', text_value=postcode)[0] edid = x.target_id except IndexError: edid = postcode_to_edid(postcode) if edid: InternalXref.objects.get_or_create(schema='edid_postcode', text_value=postcode, target_id=edid) if edid: try: member = ElectedMember.objects.get(end_date__isnull=True, riding__edid=edid) return HttpResponseRedirect( member.politician.get_absolute_url()) except ElectedMember.DoesNotExist: pass except ElectedMember.MultipleObjectsReturned: raise Exception("Too many MPs for postcode %s" % postcode) return False
def try_postcode_first(request): match = r_postcode.search(request.GET['q'].upper()) if match: postcode = match.group(1) + " " + match.group(2) try: x = InternalXref.objects.filter(schema='edid_postcode', text_value=postcode)[0] edid = x.target_id except IndexError: edid = postcode_to_edid(postcode) if edid: InternalXref.objects.get_or_create(schema='edid_postcode', text_value=postcode, target_id=edid) if edid: try: member = ElectedMember.objects.get(end_date__isnull=True, riding__edid=edid) return adaptive_redirect(request, member.politician.get_absolute_url()) except ElectedMember.DoesNotExist: return flatpage_response( request, u"Ain’t nobody lookin’ out for you", mark_safe( u"""It looks like that postal code is in the riding of %s. There is no current Member of Parliament for that riding. By law, a byelection must be called within 180 days of a resignation causing a vacancy. (If you think we’ve got our facts wrong about your riding or MP, please send an <a class='maillink'>e-mail</a>.)""" % Riding.objects.get(edid=edid).dashed_name)) except ElectedMember.MultipleObjectsReturned: raise Exception("Too many MPs for postcode %s" % postcode) return False
def try_postcode_first(request): match = r_postcode.search(request.GET['q'].upper()) if match: postcode = match.group(1) + " " + match.group(2) try: x = InternalXref.objects.filter(schema='edid_postcode', text_value=postcode)[0] edid = x.target_id except IndexError: edid = postcode_to_edid(postcode) if edid: InternalXref.objects.get_or_create(schema='edid_postcode', text_value=postcode, target_id=edid) if edid: try: member = ElectedMember.objects.get(end_date__isnull=True, riding__edid=edid) return HttpResponseRedirect(member.politician.get_absolute_url()) except ElectedMember.DoesNotExist: pass except ElectedMember.MultipleObjectsReturned: raise Exception("Too many MPs for postcode %s" % postcode) return False