def get_website_html(form_id, question_text, jurisdiction_id, request, mode="add"): requestProcessor = HttpRequestProcessor(request) data_website = {} data_website['value_existed'] = 'no' value = '' #jurisdiction_id = requestProcessor.getParameter('jurisdiction_id') answer_reference_class_obj = AnswerReference() # get current answer. qa: u don't edit; u add a new record. answer = answer_reference_class_obj.get_jurisdiction_data(jurisdiction_id, question_text) if answer: data_website['value_existed'] = 'yes' for answer_key in answer.keys(): data_website[answer_key] = answer.get(answer_key) urlUtil = UrlUtil(data_website['website']) value = "<a href='"+urlUtil.get_href()+"' target='_blank' >"+urlUtil.get_display_website()+"</a>" # info for the base_add.html data_website['value'] = value # value to display data_website['question_label'] = 'Website' # field label data_website['question_name'] = 'website' # name used in name and id of form field data_website['mode'] = 'individual' # not sure yet. # information need to configure the field, this case, a text field. data_form = {} data_form['name'] = data_website['question_name'] if mode == 'edit': data_form['value'] = data_website['website'] else: data_form['value'] = '' data_form['id'] = form_id+'_field_'+ data_form['name'] data_form['class'] = 'required' # for jquery validation data_form['style'] = 'width:210px' # for additional styling data_form['attributes'] = "maxLength='200'" # may be needed for jquery validation data_form['help_text'] = 'Enter the URL of the website' data_form['msg_error'] = '' # for error msg coming back from server. form_field = requestProcessor.decode_jinga_template(request,'website/form_fields/text_field.html', data_form, '') data_website['form_fields'] = form_field if mode == 'edit': body = requestProcessor.decode_jinga_template(request,'website/form_fields/base_edit.html', data_website, '') else: body = requestProcessor.decode_jinga_template(request,'website/form_fields/base_add.html', data_website, '') return body
def papers(request): requestProcessor = HttpRequestProcessor(request) data = {} dajax = Dajax() user = request.user data['user'] = user ajax = requestProcessor.getParameter('ajax') if ajax == 'open_papers': body = requestProcessor.decode_jinga_template(request, 'website/whitepapers/whitepapers.html', data, '') dajax.assign('#fancyboxformDiv','innerHTML', body) script = requestProcessor.decode_jinga_template(request, 'website/whitepapers/whitepapers.js', data, '') dajax.script(script) #add script to open fancybox if command starts with 'open' if ajax.startswith('open'): dajax.script('controller.showModalDialog("#fancyboxformDiv");') return HttpResponse(dajax.json())
def get_email_html(form_id, question_text, jurisdiction_id, request, mode="add"): requestProcessor = HttpRequestProcessor(request) data_email = {} data_email['value_existed'] = 'no' value = '' #jurisdiction_id = requestProcessor.getParameter('jurisdiction_id') answer_reference_class_obj = AnswerReference() # get current answer. qa: u don't edit; u add a new record. answer = answer_reference_class_obj.get_jurisdiction_data(jurisdiction_id, question_text) if answer: data_email['value_existed'] = 'yes' for answer_key in answer.keys(): data_email[answer_key] = answer.get(answer_key) value = data_email['email'] # can do formatting here data_email['value'] = value # value to display data_email['question_label'] = 'Email' # field label data_email['question_name'] = 'email' # name used in name and id of form field data_email['mode'] = 'individual' # not sure yet. # information need to configure the field, this case, a text field. data_form = {} data_form['name'] = data_email['question_name'] if mode == 'edit': data_form['value'] = data_email['email'] else: data_form['value'] = '' data_form['id'] = form_id+'_field_'+ data_form['name'] data_form['class'] = 'required' # for jquery validation data_form['style'] = 'width:210px' data_form['attributes'] = "maxLength='200'" data_form['help_text'] = 'Valid email address please' data_form['msg_error'] = '' form_field = requestProcessor.decode_jinga_template(request,'website/form_fields/text_field.html', data_form, '') data_email['form_fields'] = form_field body = requestProcessor.decode_jinga_template(request,'website/form_fields/base_add.html', data_email, '') return body
def get_info(request): data = {} requestProcessor = HttpRequestProcessor(request) dajax = Dajax() ajax = requestProcessor.getParameter('ajax') if (ajax != None): if (ajax == 'getting_started'): body = requestProcessor.decode_jinga_template(request,'website/info/getting_started.html', data, '') dajax.assign('#fancyboxformDiv','innerHTML', body) dajax.script('controller.showModalDialog("#fancyboxformDiv");') return HttpResponse(dajax.json()) if (ajax == 'about'): body = requestProcessor.decode_jinga_template(request,'website/blocks/about.html', data, '') #dajax.assign('#main_content','innerHTML', body) dajax.assign('#fancyboxformDiv','innerHTML', body) dajax.script('controller.showModalDialog("#fancyboxformDiv");') return HttpResponse(dajax.json()) if (ajax == 'privacy_policy'): body = requestProcessor.decode_jinga_template(request,'website/info/privacy_policy_modal.html', data, '') #dajax.assign('#main_content','innerHTML', body) dajax.assign('#fancyboxformDiv','innerHTML', body) dajax.script('controller.showModalDialog("#fancyboxformDiv");') return HttpResponse(dajax.json()) if (ajax == 'terms_of_use'): body = requestProcessor.decode_jinga_template(request,'website/blocks/text_terms_of_use.html', data, '') dajax.assign('#main_content','innerHTML', body) #dajax.assign('#fancyboxformDiv','innerHTML', body) #dajax.script('controller.showModalDialog("#fancyboxformDiv");') return HttpResponse(dajax.json()) if (ajax == 'disclaimer'): body = requestProcessor.decode_jinga_template(request,'website/info/disclaimer_modal.html', data, '') #dajax.assign('#main_content','innerHTML', body) dajax.assign('#fancyboxformDiv','innerHTML', body) dajax.script('controller.showModalDialog("#fancyboxformDiv");') return HttpResponse(dajax.json()) if (ajax == 'doe_grant'): body = requestProcessor.decode_jinga_template(request,'website/blocks/text_doe_grant.html', data, '') #dajax.assign('#main_content','innerHTML', body) dajax.assign('#fancyboxformDiv','innerHTML', body) dajax.script('controller.showModalDialog("#fancyboxformDiv");') return HttpResponse(dajax.json()) if (ajax == 'send_feedback'): data = {} data['form_id'] = 'form_send_feedback' data['feedback'] = requestProcessor.getParameter('feedback') if data['feedback'] == None: data['feedback'] = '' body = requestProcessor.decode_jinga_template(request,'website/info/feedback.html', data, '') dajax.assign('#fancyboxformDiv','innerHTML', body) dajax.script('controller.showModalDialog("#fancyboxformDiv");') return HttpResponse(dajax.json()) else: data['email'] = settings.FEEDBACK_EMAIL data['user'] = request.user data['feedback'] = data['feedback'].lstrip('') orgmembers = OrganizationMember.objects.filter(user = data['user'], status = 'A') user_orgs = '' if len(orgmembers) > 0: for orgmember in orgmembers: user_orgs += "," + orgmember.organization.name user_orgs.lstrip(',') data['user_orgs'] = user_orgs; user_details = UserDetail.objects.filter(user=data['user']) data['user_detail'] = user_details[0] email_feedback(data) dajax.script('jQuery.fancybox.close();') dajax.script("controller.showMessage('Your feedback has been sent and will be carefully reviewed.', 'success');") return HttpResponse(dajax.json()) data['current_nav'] = 'home' return requestProcessor.render_to_response(request,'website/home.html', data, '')
def custom_field(request): data = {} requestProcessor = HttpRequestProcessor(request) dajax = Dajax() ajax = requestProcessor.getParameter('ajax') if (ajax != None): if (ajax == 'create_custom_field'): data['form_id'] = 'create_custom_field' data['field_title'] = requestProcessor.getParameter('field_title') data['field_value'] = requestProcessor.getParameter('field_value') data['jurisdiction_id'] = requestProcessor.getParameter('jurisdiction_id') data['category_id'] = requestProcessor.getParameter('category_id') data['current_category'] = requestProcessor.getParameter('current_category') data['current_questions'] = requestProcessor.getParameter('current_questions') if data['field_title'] == None: data['field_title'] = '' if data['field_value'] == None: data['field_value'] = '' data['jurisdiction'] = Jurisdiction.objects.get(id=data['jurisdiction_id']) body = requestProcessor.decode_jinga_template(request,'website/blocks/create_custom_field.html', data, '') dajax.assign('#fancyboxformDiv','innerHTML', body) script = requestProcessor.decode_jinga_template(request, 'website/blocks/create_custom_field.js', data, '') dajax.script(script) dajax.script('controller.showModalDialog("#fancyboxformDiv");') return HttpResponse(dajax.json()) if (ajax == 'create_custom_field_submit'): data = {} data['form_id'] = 'create_custom_field' data['field_title'] = requestProcessor.getParameter('field_title') data['field_value'] = requestProcessor.getParameter('field_value') data['jurisdiction_id'] = requestProcessor.getParameter('jurisdiction_id') data['category_id'] = requestProcessor.getParameter('category_id') current_category = requestProcessor.getParameter('current_category') current_questions = requestProcessor.getParameter('current_questions') error_message = {} error_message = validate_create_custom_field_form_data(data, data['form_id']) if len(error_message) == 0: msg_key = data['form_id']+ '_fail_reason' try: jurisdiction = Jurisdiction.objects.get(id=data['jurisdiction_id']) # look up template CF for this jurisdiction templates = Template.objects.filter(jurisdiction=jurisdiction, template_type__iexact='CF') if len(templates) > 0: template = templates[0] else: template = Template() template.template_type = 'CF' template.name = 'Jurisdiction Custom Field Template' template.jurisdiction_id = data['jurisdiction_id'] #template.create_datetime = datetime.datetime.now() template.save() # create the question category_obj = QuestionCategory.objects.get(id=data['category_id']) ''' questions = Question.objects.filter(category=category_obj, accepted=1).order_by('-display_order') last_question = questions[0] if last_question.display_order == None or last_question.display_order == '': display_order = 0 else: display_order = last_question.display_order ''' highest_display_order_obj = Question.objects.filter(category=category_obj, accepted=1).aggregate(Max('display_order')) #print highest_display_order_obj if highest_display_order_obj == None: highest_display_order = 0 else: highest_display_order = highest_display_order_obj['display_order__max'] question_obj = Question(); question_obj.category_id = data['category_id'] question_obj.question = data['field_title'] question_obj.label = data['field_title'] question_obj.form_type = 'CF' question_obj.qtemplate_id = template.id question_obj.accepted = 1 question_obj.display_order = int(highest_display_order) + 5 #question_obj.create_datetime = datetime.datetime.now() question_obj.creator_id = request.user.id question_obj.save() template_question = TemplateQuestion() template_question.template_id = template.id template_question.question_id = question_obj.id #template_question.create_datetime = datetime.datetime.now() template_question.save() # save the answer data_answer = {} data_answer['value'] = data['field_value'] answer = json.dumps(data_answer) # to convert to json is_callout=0 answer_reference_class_obj = AnswerReference() #action_category_objs = ActionCategory.objects.filter(name__iexact='AddRequirement') #action_category_obj = action_category_objs[0] validation_util_obj = FieldValidationCycleUtil() arcf = validation_util_obj.save_answer(question_obj, answer, jurisdiction, 'AddRequirement', request.user, is_callout) except Exception, e: data[msg_key] = e.message print e.message #else: if len(error_message) > 0: for msg_key in error_message.keys(): data[msg_key] = error_message.get(msg_key) body = requestProcessor.decode_jinga_template(request,'website/blocks/create_custom_fields.html', data, '') dajax.assign('#fancyboxformDiv','innerHTML', body) script = requestProcessor.decode_jinga_template(request, 'website/blocks/create_custom_fields.js', data, '') dajax.script(script) else: data_cf = {} jurisdiction = Jurisdiction.objects.get(id=data['jurisdiction_id']) data_cf['jurisdiction'] = jurisdiction ''' question_category_obj = QuestionCategory.objects.get(id=data['category_id']) data['question_categories'] = QuestionCategory.objects.filter(id=data['category_id']) question_class_obj = Question() custom_questions = question_class_obj.get_custom_fields_by_jurisdiction_by_category(jurisdiction, data['category_id']) print custom_questions validation_util_obj = FieldValidationCycleUtil() data['action'] = 'refresh_ahj_qa' if custom_questions != None and len(custom_questions) > 0: for question in custom_questions: data['question_content'][question_category_obj.id][question.id] = validation_util_obj.get_AHJ_question_data(request, jurisdiction, question, data) ''' ''' validation_util_obj = FieldValidationCycleUtil() data_cf['this_question'] = question_obj question_content = validation_util_obj.get_AHJ_question_data(request, jurisdiction, question_obj, data_cf) for key in question_content.keys(): data_cf[key] = question_content.get(key) body = requestProcessor.decode_jinga_template(request,'website/jurisdictions/AHJ_question_content_authenticated.html', data_cf, '') dajax.assign('#div_custom_question_content_'+str(category_obj.id),'innerHTML', body) script = requestProcessor.decode_jinga_template(request,'website/jurisdictions/AHJ_question_content.js', data, '') dajax.script(script) ''' template_obj = Template() jurisdiction_templates = template_obj.get_jurisdiction_question_templates(jurisdiction) data_cf['action'] = '/jurisdiction_id/'+str(jurisdiction.id)+'/'+current_category+'/' current_questions = current_questions.split(',') data_cf['custom_questions'] = Question.objects.filter(category=category_obj, accepted=1, qtemplate__in=jurisdiction_templates).exclude(id__in=(current_questions)) body = requestProcessor.decode_jinga_template(request,'website/jurisdictions/AHJ_question_content_ajax_call.html', data_cf, '') dajax.assign('#div_custom_question_content_'+str(category_obj.id),'innerHTML', body) script = requestProcessor.decode_jinga_template(request, 'website/jurisdictions/AHJ_question_content_ajax_call.js', data_cf, '') dajax.script(script) ###################################################### #data['custom_questions'] = custom_questions #data['custom_questions'] = {} #data['custom_questions'][question_category_obj.id] = custom_questions #body = requestProcessor.decode_jinga_template(request,'website/blocks/custom_fields.html', data, '') #dajax.assign('#custom_fields_'+str(question_category_obj.id),'innerHTML', body) dajax.script('jQuery.fancybox.close();') dajax.script("controller.showMessage('Custom field created.', 'success')") dajax.script('controller.updateUrlAnchor("#create_custom_field");') if current_category == 'all_info': question_categories = QuestionCategory.objects.filter(accepted=1) data['category'] = 'All categories' else: question_categories = QuestionCategory.objects.filter(name__iexact=category_obj.name) data['category'] = category_obj.name #data['category'] = question_obj.category.name data['jurisdiction'] = jurisdiction validation_util_obj = FieldValidationCycleUtil() data['top_contributors'] = validation_util_obj.get_top_contributors(jurisdiction, question_categories) body = requestProcessor.decode_jinga_template(request,'website/blocks/top_contributors.html', data, '') dajax.assign('#top_contributors','innerHTML', body) return HttpResponse(dajax.json())
def custom_field(request): data = {} requestProcessor = HttpRequestProcessor(request) dajax = Dajax() ajax = requestProcessor.getParameter('ajax') if (ajax != None): if (ajax == 'create_custom_field'): data['form_id'] = 'create_custom_field' data['field_title'] = requestProcessor.getParameter('field_title') data['field_value'] = requestProcessor.getParameter('field_value') data['jurisdiction_id'] = requestProcessor.getParameter('jurisdiction_id') data['category_id'] = requestProcessor.getParameter('category_id') data['current_category'] = requestProcessor.getParameter('current_category') if data['field_title'] == None: data['field_title'] = '' if data['field_value'] == None: data['field_value'] = '' data['jurisdiction'] = Jurisdiction.objects.get(id=data['jurisdiction_id']) body = requestProcessor.decode_jinga_template(request,'website/blocks/create_custom_field.html', data, '') dajax.assign('#fancyboxformDiv','innerHTML', body) script = requestProcessor.decode_jinga_template(request, 'website/blocks/create_custom_field.js', data, '') dajax.script(script) dajax.script('controller.showModalDialog("#fancyboxformDiv");') return HttpResponse(dajax.json()) if (ajax == 'create_custom_field_submit'): data = {} data['form_id'] = 'create_custom_field' data['field_title'] = requestProcessor.getParameter('field_title') data['field_value'] = requestProcessor.getParameter('field_value') data['jurisdiction_id'] = requestProcessor.getParameter('jurisdiction_id') data['category_id'] = requestProcessor.getParameter('category_id') current_category = requestProcessor.getParameter('current_category') current_questions = requestProcessor.getParameter('current_questions') error_message = {} error_message = validate_create_custom_field_form_data(data, data['form_id']) if len(error_message) == 0: msg_key = data['form_id']+ '_fail_reason' try: jurisdiction = Jurisdiction.objects.get(id=data['jurisdiction_id']) # look up template CF for this jurisdiction templates = Template.objects.filter(jurisdiction=jurisdiction, template_type__iexact='CF', accepted = 1) if len(templates) > 0: template = templates[0] else: template = Template() template.template_type = 'CF' template.name = 'Jurisdiction Custom Field Template' template.jurisdiction_id = data['jurisdiction_id'] #template.create_datetime = datetime.datetime.now() template.accepted = 1 template.save() # create the question category_obj = QuestionCategory.objects.get(id=data['category_id']) ''' questions = Question.objects.filter(category=category_obj, accepted=1).order_by('-display_order') last_question = questions[0] if last_question.display_order == None or last_question.display_order == '': display_order = 0 else: display_order = last_question.display_order ''' highest_display_order_obj = Question.objects.filter(category=category_obj, accepted=1).aggregate(Max('display_order')) if highest_display_order_obj == None: highest_display_order = 0 else: highest_display_order = highest_display_order_obj['display_order__max'] question_obj = Question(); question_obj.category_id = data['category_id'] question_obj.question = data['field_title'] question_obj.label = data['field_title'] question_obj.form_type = 'CF' question_obj.qtemplate_id = template.id question_obj.accepted = 1 question_obj.display_order = int(highest_display_order) + 5 #question_obj.create_datetime = datetime.datetime.now() question_obj.creator_id = request.user.id question_obj.save() template_question = TemplateQuestion() template_question.template_id = template.id template_question.question_id = question_obj.id #template_question.create_datetime = datetime.datetime.now() template_question.save() # save the answer data_answer = {} data_answer['value'] = data['field_value'] answer = json.dumps(data_answer) # to convert to json is_callout=0 answer_reference_class_obj = AnswerReference() #action_category_objs = ActionCategory.objects.filter(name__iexact='AddRequirement') #action_category_obj = action_category_objs[0] validation_util_obj = FieldValidationCycleUtil() arcf = validation_util_obj.save_answer(question_obj, answer, jurisdiction, 'AddRequirement', request.user, is_callout) except Exception, e: data[msg_key] = e.message #else: if len(error_message) > 0: for msg_key in error_message.keys(): data[msg_key] = error_message.get(msg_key) body = requestProcessor.decode_jinga_template(request,'website/blocks/create_custom_field.html', data, '') dajax.assign('#fancyboxformDiv','innerHTML', body) script = requestProcessor.decode_jinga_template(request, 'website/blocks/create_custom_field.js', data, '') dajax.script(script) else: data_cf = {} jurisdiction = Jurisdiction.objects.get(id=data['jurisdiction_id']) data_cf['jurisdiction'] = jurisdiction template_obj = Template() jurisdiction_templates = template_obj.get_jurisdiction_question_templates(jurisdiction) data_cf['action'] = '/jurisdiction_id/'+str(jurisdiction.id)+'/'+current_category+'/' data_cf = get_question_data(request, jurisdiction, question_obj, data) body = requestProcessor.decode_jinga_template(request,'website/jurisdictions/AHJ_cqa_qa.html', data_cf, '') script = requestProcessor.decode_jinga_template(request,'website/jurisdictions/AHJ_cqa_qa.js' , data, '') dajax.script(script) dajax.assign('#div_custom_question_content_'+str(data['category_id']),'innerHTML', body) ###################################################### #data['custom_questions'] = custom_questions #data['custom_questions'] = {} #data['custom_questions'][question_category_obj.id] = custom_questions #body = requestProcessor.decode_jinga_template(request,'website/blocks/custom_fields.html', data, '') #dajax.assign('#custom_fields_'+str(question_category_obj.id),'innerHTML', body) dajax.script('jQuery.fancybox.close();') dajax.script("controller.showMessage('Custom field created.', 'success')") dajax.script('controller.updateUrlAnchor("#create_custom_field");') data = {} if current_category == 'all_info': question_categories = QuestionCategory.objects.filter(accepted=1) data['category'] = 'All categories' else: question_categories = QuestionCategory.objects.filter(name__iexact=category_obj.name) data['category'] = category_obj.name #data['category'] = question_obj.category.name data['jurisdiction'] = jurisdiction data['top_contributors'] = get_ahj_top_contributors(jurisdiction, current_category) body = requestProcessor.decode_jinga_template(request,'website/jurisdictions/AHJ_top_contributors.html', data, '') dajax.assign('#top-contributor','innerHTML', body) return HttpResponse(dajax.json())
def reset_password(request, reset_password_key=''): data = {} error_message = {} requestProcessor = HttpRequestProcessor(request) dajax = Dajax() ajax = requestProcessor.getParameter('ajax') if (ajax != None): if (ajax == 'launch_reset_password'): data = {} form_name = 'form_reset_password' reset_password_key = requestProcessor.getParameter('reset_password_key') data['reset_password_key'] = reset_password_key user_details = UserDetail.objects.filter(reset_password_key__exact=reset_password_key) if user_details: body = requestProcessor.decode_jinga_template(request,'website/accounts/reset_password.html', data, '') script = requestProcessor.decode_jinga_template(request, 'website/accounts/reset_password.js', data, '') else: data[form_name+'_fail_reason'] = 'The reset password key is no longer valid' data['site_url'] = settings.SITE_URL body = requestProcessor.decode_jinga_template(request,'website/accounts/expired_reset_password_key.html', data, '') script = requestProcessor.decode_jinga_template(request, 'website/accounts/expired_reset_password_key.js', data, '') dajax.assign('#fancyboxformDiv','innerHTML', body) dajax.script('controller.showModalDialog("#fancyboxformDiv");') dajax.script(script) return HttpResponse(dajax.json()) if (ajax == 'reset_password_submit'): data = {} form_name = 'form_reset_password' reset_password_key = requestProcessor.getParameter('reset_password_key') data['password'] = requestProcessor.getParameter('password') data['verify_password'] = requestProcessor.getParameter('verify_password') data['reset_password_key'] = reset_password_key error_message = validate_reset_password_form_data(data, form_name) if len(error_message) == 0: user_details = UserDetail.objects.filter(reset_password_key__exact=reset_password_key) if user_details: user_detail = user_details[0] user = User.objects.get(id=user_detail.user_id) if user: user.set_password(data['password']) user.is_active = 1 user.save() user_detail.reset_password_key = '' user_detail.save() user = authenticate(username=user.username, password=data['password']) if user is not None: if user.is_active: login(request, user) dajax.script('jQuery.fancybox.close();') add_system_message(request, 'success_reset_password') dajax.script("window.location.href='"+settings.SITE_URL+"';") return HttpResponse(dajax.json()) else: error_message[form_name+'_fail_reason'] = 'Disabled account' else: error_message[form_name+'_fail_reason'] = 'Invalid login' else: error_message[form_name+'_fail_reason'] = 'The reset password key is no longer valid' else: error_message[form_name+'_fail_reason'] = 'The reset password key is no longer valid' if len(error_message) > 0: for msg_key in error_message.keys(): data[msg_key] = error_message.get(msg_key) body = requestProcessor.decode_jinga_template(request,'website/accounts/reset_password.html', data, '') script = requestProcessor.decode_jinga_template(request, 'website/accounts/reset_password.js', data, '') dajax.assign('#fancyboxformDiv','innerHTML', body) dajax.script(script) return HttpResponse(dajax.json()) #default response for all ajax return HttpResponse(dajax.json()) data['reset_password_key'] = reset_password_key data['action_key'] = 'reset_password' return requestProcessor.render_to_response(request,'website/home.html', data, '')
def get_info(request): data = {} requestProcessor = HttpRequestProcessor(request) dajax = Dajax() ajax = requestProcessor.getParameter('ajax') if (ajax != None): if (ajax == 'privacy_policy'): body = requestProcessor.decode_jinga_template(request,'website/info/privacy_policy_modal.html', data, '') #dajax.assign('#main_content','innerHTML', body) dajax.assign('#fancyboxformDiv','innerHTML', body) dajax.script('controller.showModalDialog("#fancyboxformDiv");') return HttpResponse(dajax.json()) if (ajax == 'terms_of_use'): body = requestProcessor.decode_jinga_template(request,'website/blocks/text_terms_of_use.html', data, '') dajax.assign('#main_content','innerHTML', body) #dajax.assign('#fancyboxformDiv','innerHTML', body) #dajax.script('controller.showModalDialog("#fancyboxformDiv");') return HttpResponse(dajax.json()) if (ajax == 'doe_grant'): body = requestProcessor.decode_jinga_template(request,'website/blocks/text_doe_grant.html', data, '') #dajax.assign('#main_content','innerHTML', body) dajax.assign('#fancyboxformDiv','innerHTML', body) dajax.script('controller.showModalDialog("#fancyboxformDiv");') return HttpResponse(dajax.json()) if (ajax == 'send_feedback'): data = {} data['form_id'] = 'form_send_feedback' data['feedback'] = requestProcessor.getParameter('feedback') if data['feedback'] == None: data['feedback'] = '' body = requestProcessor.decode_jinga_template(request,'website/info/feedback.html', data, '') script = requestProcessor.decode_jinga_template(request, 'website/info/feedback.js', data, '') dajax.assign('#fancyboxformDiv','innerHTML', body) dajax.script('controller.showModalDialog("#fancyboxformDiv");') dajax.script(script) return HttpResponse(dajax.json()) else: data['email'] = settings.FEEDBACK_EMAIL data['user'] = request.user data['feedback'] = data['feedback'].lstrip('') if request.user.is_authenticated(): orgmembers = OrganizationMember.objects.filter(user = data['user'], status = 'A') user_orgs = '' if len(orgmembers) > 0: for orgmember in orgmembers: user_orgs += "," + orgmember.organization.name user_orgs.lstrip(',') data['user_orgs'] = user_orgs; user_details = UserDetail.objects.filter(user=data['user']) data['user_detail'] = user_details[0] data['first_name'] = data['user'].first_name data['last_name'] = data['user'].last_name data['username'] = data['user'].username data['title'] = data['user_detail'].title data['user_email'] = data['user'].email else: data['first_name'] = requestProcessor.getParameter('first_name') # required data['last_name'] = requestProcessor.getParameter('last_name') # required data['user_email'] = requestProcessor.getParameter('email') # required data['title'] = requestProcessor.getParameter('title') data['user_orgs'] = requestProcessor.getParameter('org') # required data['username'] = '' email_feedback(data) dajax.script('jQuery.fancybox.close();') dajax.script("controller.showMessage('Your feedback has been sent and will be carefully reviewed.', 'success');") return HttpResponse(dajax.json()) data['current_nav'] = 'home' return requestProcessor.render_to_response(request,'website/home.html', data, '')
def reset_password(request, reset_password_key=''): data = {} error_message = {} requestProcessor = HttpRequestProcessor(request) dajax = Dajax() ajax = requestProcessor.getParameter('ajax') if (ajax != None): if (ajax == 'launch_reset_password'): data = {} form_name = 'form_reset_password' reset_password_key = requestProcessor.getParameter( 'reset_password_key') data['reset_password_key'] = reset_password_key user_details = UserDetail.objects.filter( reset_password_key__exact=reset_password_key) if user_details: body = requestProcessor.decode_jinga_template( request, 'website/accounts/reset_password.html', data, '') script = requestProcessor.decode_jinga_template( request, 'website/accounts/reset_password.js', data, '') else: data[ form_name + '_fail_reason'] = 'The reset password key is no longer valid' data['site_url'] = settings.SITE_URL body = requestProcessor.decode_jinga_template( request, 'website/accounts/expired_reset_password_key.html', data, '') script = requestProcessor.decode_jinga_template( request, 'website/accounts/expired_reset_password_key.js', data, '') dajax.assign('#fancyboxformDiv', 'innerHTML', body) dajax.script('controller.showModalDialog("#fancyboxformDiv");') dajax.script(script) return HttpResponse(dajax.json()) if (ajax == 'reset_password_submit'): data = {} form_name = 'form_reset_password' reset_password_key = requestProcessor.getParameter( 'reset_password_key') data['password'] = requestProcessor.getParameter('password') data['verify_password'] = requestProcessor.getParameter( 'verify_password') data['reset_password_key'] = reset_password_key error_message = validate_reset_password_form_data(data, form_name) if len(error_message) == 0: user_details = UserDetail.objects.filter( reset_password_key__exact=reset_password_key) if user_details: user_detail = user_details[0] user = User.objects.get(id=user_detail.user_id) if user: user.set_password(data['password']) user.is_active = 1 user.save() user_detail.reset_password_key = '' user_detail.save() user = authenticate(username=user.username, password=data['password']) if user is not None: if user.is_active: login(request, user) dajax.script('jQuery.fancybox.close();') add_system_message(request, 'success_reset_password') dajax.script("window.location.href='" + settings.SITE_URL + "';") return HttpResponse(dajax.json()) else: error_message[ form_name + '_fail_reason'] = 'Disabled account' else: error_message[form_name + '_fail_reason'] = 'Invalid login' else: error_message[ form_name + '_fail_reason'] = 'The reset password key is no longer valid' else: error_message[ form_name + '_fail_reason'] = 'The reset password key is no longer valid' if len(error_message) > 0: for msg_key in error_message.keys(): data[msg_key] = error_message.get(msg_key) body = requestProcessor.decode_jinga_template( request, 'website/accounts/reset_password.html', data, '') script = requestProcessor.decode_jinga_template( request, 'website/accounts/reset_password.js', data, '') dajax.assign('#fancyboxformDiv', 'innerHTML', body) dajax.script(script) return HttpResponse(dajax.json()) #default response for all ajax return HttpResponse(dajax.json()) data['reset_password_key'] = reset_password_key data['action_key'] = 'reset_password' return requestProcessor.render_to_response(request, 'website/home.html', data, '')
def jurisdiction_comment(request): requestProcessor = HttpRequestProcessor(request) user = request.user data = {} dajax = Dajax() ajax = requestProcessor.getParameter('ajax') comments_changed = requestProcessor.getParameter('comments_changed') if comments_changed == 'yes': data['comments_changed'] = 'yes' else: data['comments_changed'] = 'no' if (ajax != None): if ajax == 'open_jurisdiction_comment': entity_id = requestProcessor.getParameter('entity_id') entity_name = requestProcessor.getParameter('entity_name') jid = requestProcessor.getParameter('jurisdiction_id') try: jurisdiction = Jurisdiction.objects.get(id = jid) except: jurisdiction = None comments = Comment.objects.filter(jurisdiction = jurisdiction, entity_name = entity_name, entity_id = entity_id, parent_comment__isnull = True).order_by('-create_datetime') userviews = UserCommentView.objects.filter(jurisdiction = jurisdiction, entity_name = entity_name, entity_id = entity_id, user = user) temp_comments = Comment.objects.filter(jurisdiction = jurisdiction, entity_name = entity_name, entity_id = entity_id).order_by('-create_datetime') last_comment = None if len(temp_comments) > 0 : last_comment = temp_comments[0] has_userview = False if len(userviews) > 0: userview = userviews[0] if userview.last_comment != None: data['userview_last_comment'] = userview.last_comment.id data['userview'] = userviews[0] userview.comments_count = Comment.objects.filter(jurisdiction = jurisdiction, entity_name = entity_name, entity_id = entity_id).count() userview.last_comment = last_comment userview.view_datetime = datetime.datetime.now() userview.save() has_userview = True if has_userview == False: userview = None data['userview'] = userview data['userview_last_comment'] = 0 userview = UserCommentView() userview.user = user userview.jurisdiction = jurisdiction userview.entity_name = entity_name userview.entity_id = entity_id userview.comments_count = Comment.objects.filter(jurisdiction = jurisdiction, entity_name = entity_name, entity_id = entity_id).count() userview.last_comment = last_comment userview.view_datetime = datetime.datetime.now() userview.save() af = AnswerReference.objects.get(id = entity_id) aa = ValidationUtil() data['answer'] = af data['answer_text'] = aa.get_formatted_value(af.value, af.question) data['jurisdiction'] = jurisdiction label = af.question.question if len(af.question.question) > 75: label = af.question.question[:78]+ '...' data['label'] = label data['commnets'] = comments others_afs = AnswerReference.objects.filter(jurisdiction = jurisdiction, question = af.question, approval_status='A').exclude(id = entity_id).order_by('-create_datetime') if len(others_afs) > 0 : old_answer = others_afs[0] if old_answer.id < af.id: data['old_answer'] = old_answer data['old_answer_text'] = aa.get_formatted_value(old_answer.value, old_answer.question) else: data['old_answer'] = None data['old_answer_text'] = '' else: data['old_answer'] = None data['old_answer_text'] = '' body = requestProcessor.decode_jinga_template(request,'website/jurisdictions/jurisdiction_comment.html', data, '') dajax.assign('#fancyboxformDiv','innerHTML', body) script = requestProcessor.decode_jinga_template(request,'website/jurisdictions/jurisdiction_comment.js', data, '') dajax.script(script) #script = requestProcessor.decode_jinga_template(request,'website/blocks/comments_list.js', data, '') #dajax.script(script) dajax.script('controller.showModalDialog("#fancyboxformDiv");') if ajax =='create_jurisdiction_comment': answer_id = requestProcessor.getParameter('answer_id') jid = requestProcessor.getParameter('jurisdiction_id') comment_type = 'JC' data['answer_id'] = answer_id data['jurisdiction_id'] = jid data['comment_type'] = comment_type data['parent_comment'] = '' body = requestProcessor.decode_jinga_template(request,'website/jurisdictions/create_comment.html', data, '') script = requestProcessor.decode_jinga_template(request,'website/jurisdictions/create_comment.js', data, '') dajax.assign('#secondDialogDiv','innerHTML', body) dajax.script(script) dajax.script('controller.showSecondDialog("#secondDialogDiv");') if ajax =='comment_create_submit': entity_id = requestProcessor.getParameter('entity_id') entity_name = requestProcessor.getParameter('entity_name') jurisdiction_id = requestProcessor.getParameter('jurisdiction_id') comment_type = requestProcessor.getParameter('comment_type') comment_text = requestProcessor.getParameter('comment') parent_comment = requestProcessor.getParameter('parent_comment') try: jurisdiction = Jurisdiction.objects.get(id = jurisdiction_id) except: jurisdiction = None comment = Comment() comment.jurisdiction = jurisdiction comment.entity_name = entity_name comment.entity_id = entity_id comment.user = user comment.comment_type = comment_type comment.comment = comment_text if parent_comment != '': parent = Comment.objects.get(id = parent_comment) comment.parent_comment = parent comment.save() userviews = UserCommentView.objects.filter(user = user, jurisdiction = jurisdiction, entity_name = entity_name, entity_id = entity_id) userview = userviews[0] userview.last_comment = comment userview.comments_count = Comment.objects.filter(jurisdiction = jurisdiction, entity_name = entity_name, entity_id = entity_id).count() userview.view_datetime = datetime.datetime.now() userview.save() dajax.script('controller.closeSecondDialog();') dajax.script('controller.postRequest("/jurisdiction_comment/", {ajax: "open_jurisdiction_comment", jurisdiction_id:'+str(jurisdiction_id)+', entity_id: "'+str(entity_id)+'", entity_name: "'+str(entity_name)+'", comments_changed: "yes"});') data = {} data['action'] = 'refresh_ahj_qa' answer = AnswerReference.objects.get(id=entity_id) validation_util_obj = ValidationUtil() body = validation_util_obj.get_question_answers_display_data(request, answer.jurisdiction, answer.question, data) dajax.assign('#div_'+str(answer.question_id),'innerHTML', body) if ajax =='reply_comment': cid = requestProcessor.getParameter('cid') comment = Comment.objects.get(id = cid) data['comment'] = comment body = requestProcessor.decode_jinga_template(request,'website/blocks/reply_comment_form.html', data, '') script = requestProcessor.decode_jinga_template(request,'website/blocks/reply_comment_form.js', data, '') dajax.assign('#button-div-'+str(cid),'innerHTML', body) dajax.script(script) if ajax == 'cancel_reply': cid = requestProcessor.getParameter('cid') body = '<a class="smallbutton" href="#" onClick="controller.postRequest(\'/jurisdiction_comment/\', {ajax: \'reply_comment\', cid: '+str(cid)+'});return false;">Reply</a><a class="smallbutton" href="#">Flag</a>' dajax.assign('#button-div-'+str(cid),'innerHTML', body) if ajax == 'flag_comment': cid = requestProcessor.getParameter('cid') comment = Comment.objects.get(id = cid) comment.approval_status = 'F' comment.save() af = AnswerReference.objects.get(id = comment.entity_id) to_mail = [django_settings.ADMIN_EMAIL_ADDRESS] data['comment'] = comment data['user'] = user data['question'] = af.question.question data['site_url'] = django_settings.SITE_URL data['requestProcessor'] = requestProcessor data['request'] = request send_email(data, to_mail) dajax.assign('#comment_'+str(cid), 'innerHTML', '<p>This comment had been flagged as inappropriate and is hidden pending review.</p>') if ajax == 'show_old_comments': entity_id = requestProcessor.getParameter('answer_id') entity_name = 'AnswerReference' jid = requestProcessor.getParameter('jurisdiction_id') try: jurisdiction = Jurisdiction.objects.get(id = jid) except: jurisdiction = None comments = Comment.objects.filter(jurisdiction = jurisdiction, entity_name = entity_name, entity_id = entity_id, parent_comment__isnull = True).order_by('-create_datetime') userviews = UserCommentView.objects.filter(jurisdiction = jurisdiction, entity_name = entity_name, entity_id = entity_id, user = user) temp_comments = Comment.objects.filter(jurisdiction = jurisdiction, entity_name = entity_name, entity_id = entity_id).order_by('-create_datetime') last_comment = None if len(temp_comments) > 0 : last_comment = temp_comments[0] if len(userviews) > 0: userview = userviews[0] data['userview'] = userview userview.comments_count = Comment.objects.filter(jurisdiction = jurisdiction, entity_name = entity_name, entity_id = entity_id).count() userview.last_comment = last_comment userview.view_datetime = datetime.datetime.now() userview.save() else: userview = None data['userview'] = userview userview = UserCommentView() userview.user = user userview.jurisdiction = jurisdiction userview.entity_name = entity_name userview.entity_id = entity_id userview.comments_count = Comment.objects.filter(jurisdiction = jurisdiction, entity_name = entity_name, entity_id = entity_id).count() userview.last_comment = last_comment userview.view_datetime = datetime.datetime.now() userview.save() data['commnets'] = comments body = requestProcessor.decode_jinga_template(request,'website/blocks/comments_list.html', data, '') dajax.assign('#old_list ul', 'innerHTML', body) dajax.assign('#show_commnet_div', 'innerHTML', '<a id="id_a_hide" href="#"><img src="/media/images/arrow_down.png" style="vertical-align:bottom;" alt="Hide old comments" >Hide old comments </a>') script = requestProcessor.decode_jinga_template(request,'website/jurisdictions/jurisdiction_comment.js', data, '') dajax.script(script) return HttpResponse(dajax.json()) return
def get_state_jurisdictions(request, state='', sort_by='', sort_dir='', page_num=''): data = {} data['get_state_jurisdiction'] = True requestProcessor = HttpRequestProcessor(request) search_str = requestProcessor.getParameter('text_2') if search_str == None or search_str == 'Search': search_str = '' filter = requestProcessor.getParameter('filter') if filter == None: filter = 'all' only_jurisditions_with_data = requestProcessor.getParameter('only_jurisditions_with_data') if only_jurisditions_with_data != None: data['only_jurisditions_with_data'] = int(only_jurisditions_with_data) else: ajax = requestProcessor.getParameter('ajax') if ajax == 'filter': data['only_jurisditions_with_data'] = 0 else: if 'only_jurisditions_with_data' in request.session: data['only_jurisditions_with_data'] = request.session['only_jurisditions_with_data'] else: data['only_jurisditions_with_data'] = 1 request.session['only_jurisditions_with_data'] = data['only_jurisditions_with_data'] if sort_by == '' or sort_by == None: sort_by = 'name' elif sort_by == 'last': sort_by = 'last_contributed' if sort_dir == '' or sort_dir == None: sort_dir = 'asc' if sort_dir == 'asc': order_by_str = sort_by else: order_by_str = '-'+sort_by data['sort_by'] = sort_by data['sort_dir'] = sort_dir data['secondary_search_str'] = search_str data['filter'] = filter user = request.user if user.is_authenticated(): data['nav'] = 'yes' data['breadcrum'] = 'no' else: data['nav'] = 'no' data['breadcrum'] = 'yes' #return HttpResponseRedirect("/sign_in/?next=/jurisdiction_browse/"+state+"/name/asc/1_1/") sort_desc_img = django_settings.SORT_DESC_IMG sort_asc_img = django_settings.SORT_ASC_IMG sort_class = django_settings.SORT_CLASS sort_columns = {} sort_columns['name'] = 'asc' sort_columns['county'] = 'asc' sort_columns['last_contributed'] = 'asc' sort_columns['last_contributed_by'] = 'asc' data['current_nav'] = 'browse' href = '/jurisdiction/browse/?state=' + state search_params = {} #data['page_title'] = "Browse Jurisdiction: " + state if state == '': state = 'CA' data['state'] = state data['state_long_name'] = dict(US_STATES)[state] #type = 'S' #data['state_list'] = Jurisdiction.objects.filter(state__iexact=state, jurisdiction_type__iexact=type) if filter == 'county': type = ['CO', 'CONP', 'SC' ] elif filter == 'city': type = ['CI', 'CINP', 'SCFO', 'U'] elif filter == 'state': type = ['S'] else: type = '' page = requestProcessor.getParameter('page') if page != None and page != '': page_number = int(page) else: page_number = 1 range_start = (page_number - 1) * JURISDICTION_PAGE_SIZE range_end = page_number * JURISDICTION_PAGE_SIZE data['next_page_param'] = 'page='+str(page_number + 1) objects = Jurisdiction.objects.none() if search_str == '': if filter == 'all' or filter == '' or filter == None: if data['only_jurisditions_with_data'] == 1: objects |= Jurisdiction.objects.filter(last_contributed__isnull = False, state__iexact=state) objects |= Jurisdiction.objects.filter(state__iexact=state, jurisdiction_type__in=('U', 'SCFO'), parent__last_contributed__isnull=False) else: objects |= Jurisdiction.objects.filter(last_contributed__isnull = True, state__iexact=state) elif filter == 'county' or filter == 'city' or filter == 'state': if data['only_jurisditions_with_data'] == 1: objects |= Jurisdiction.objects.filter(last_contributed__isnull = False, state__iexact=state, jurisdiction_type__in=type) objects |= Jurisdiction.objects.filter(state__iexact=state, jurisdiction_type__in=('U', 'SCFO'), parent__last_contributed__isnull=False) else: objects |= Jurisdiction.objects.filter(last_contributed__isnull = True, state__iexact=state, jurisdiction_type__in=type) else: if filter == 'all' or filter == '' or filter == None: if data['only_jurisditions_with_data'] == 1: objects |= Jurisdiction.objects.filter(name__icontains=search_str, last_contributed__isnull = False, state__iexact=state) objects |= Jurisdiction.objects.filter(name__icontains=search_str, state__iexact=state, jurisdiction_type__in=('U', 'SCFO'), parent__last_contributed__isnull=False) else: objects |= Jurisdiction.objects.filter(name__icontains=search_str, state__iexact=state, last_contributed__isnull = True) elif filter == 'county' or filter == 'city' or filter == 'state': if data['only_jurisditions_with_data'] == 1: objects |= Jurisdiction.objects.filter(name__icontains=search_str, last_contributed__isnull = False, state__iexact=state, jurisdiction_type__in=type) objects |= Jurisdiction.objects.filter(name__icontains=search_str, state__iexact=state, jurisdiction_type__in=('U', 'SCFO'), parent__last_contributed__isnull=False) else: objects |= Jurisdiction.objects.filter(name__icontains=search_str, state__iexact=state, jurisdiction_type__in=type, last_contributed__isnull = True) if sort_by == '' or sort_by == None: objects = objects.order_by('name', 'county') else: objects = objects.order_by(order_by_str) data['count'] = len(objects) data['list'] = objects[range_start:range_end] #data['system_message_type'] = 'success' #data['system_message_text'] = 'A lot of data found for your consumption' data['action'] = "/jurisdiction/browse/?state="+state data['home'] = '/' data['user'] = request.user message_data = get_system_message(request) #get the message List data = dict(data.items() + message_data.items()) #merge message list to data dajax = Dajax() ajax = requestProcessor.getParameter('ajax') if (ajax != None): #handle ajax calls if ajax == 'filter': body = requestProcessor.decode_jinga_template(request,'website/jurisdictions/jurisdiction_list.html', data, '') dajax.assign('#jurisdiction_list','innerHTML', body) if page_number == 1: #initialize jscroll if page 1 script = requestProcessor.decode_jinga_template(request, 'website/jurisdictions/jurisdiction_list.js', data, '') dajax.script(script) if int(data['only_jurisditions_with_data']) == 1: message = 'Jurisdictions without data are hidden. Uncheck to show.' else: message = 'Jurisdictions without data are visible. Check to hide.' dajax.assign('#only_jurisdictions_with_data_message','innerHTML', message) return HttpResponse(dajax.json()) return HttpResponse(dajax.json()) #data['user'] = request.user if page_number != 1: #for endless scroll next page, only render the list return requestProcessor.render_to_response(request,'website/jurisdictions/jurisdiction_list.html', data, '') else: return requestProcessor.render_to_response(request,'website/jurisdictions/jurisdiction_by_state.html', data, '')
def jurisdiction_search_improved(request): requestProcessor = HttpRequestProcessor(request) data = {'page_class': 'meta'} data['breadcrum'] = 'no' data['nav'] = 'yes' data['current_nav'] = 'browse' #handle ajax near the end since it needs the same query in most cases #but need to know if it is ajax to prevent redirect to jurisdiction page dajax = Dajax() ajax = requestProcessor.getParameter('ajax') caller = requestProcessor.getParameter('caller') if caller == '' or caller == None: caller = 'general_search' data['caller'] = caller form = None primary_search_str = requestProcessor.getParameter('q') text_primary_search_str = requestProcessor.getParameter('text') if primary_search_str == None: primary_search_str = '' if text_primary_search_str == None: text_primary_search_str = '' # replace primary_search_str with q_primary_search_str if q_primary_search_str is available if primary_search_str == '': if text_primary_search_str != '': primary_search_str = text_primary_search_str data['primary_search_str'] = primary_search_str if caller == 'state_jurisdictions': data['state_long_name'] = dict(US_STATES)[primary_search_str] secondary_search_str = requestProcessor.getParameter('text_2') if secondary_search_str == None or secondary_search_str=='Search': secondary_search_str = '' data['secondary_search_str'] = secondary_search_str search_level = check_search_level(primary_search_str) primary_exclude = exclude(primary_search_str) filter = requestProcessor.getParameter('filter') if filter == None: if search_level != '': filter = search_level else: filter = 'all' data['filter'] = filter sort_by = requestProcessor.getParameter('sort_by') if sort_by == None: sort_by = '' data['sort_by'] = sort_by sort_dir = requestProcessor.getParameter('sort_dir') #order_by_str = pagingation_obj.get_order_by_str(sort_by, sort_dir) if sort_dir == '' or sort_dir == None: sort_dir = 'asc' data['sort_dir'] = sort_dir sort_desc_img = django_settings.SORT_DESC_IMG sort_asc_img = django_settings.SORT_ASC_IMG page = requestProcessor.getParameter('page') if page != None and page != '': page_number = int(page) else: page_number = 1 range_start = (page_number - 1) * JURISDICTION_PAGE_SIZE range_end = page_number * JURISDICTION_PAGE_SIZE data['next_page_param'] = 'page='+str(page_number + 1) data['message'] = '' mathUtil = MathUtil() if mathUtil.is_number(primary_search_str) == False: if sort_by == '' or sort_by == None: sort_by = 'name' else: if sort_by == 'name': sort_by = 'name' elif sort_by == 'last': sort_by = 'last_contributed' else: sort_by = 'last_contributed_by' data['sort_by'] = sort_by if sort_dir == 'asc': order_by_str = sort_by data['image_src'] = sort_asc_img data['sort_dir_txt'] = 'ascending' data['sort_dir'] = 'asc' else: order_by_str = '-'+sort_by data['image_src'] = sort_desc_img data['sort_dir_txt'] = 'descending' data['sort_dir'] = 'desc' data['search_by'] = 'search_by_name'; scrubbed_primary_search_str = scrub_text_search_str(primary_search_str) sec_exclude = exclude(secondary_search_str) if primary_search_str.__len__() >= 2: objects_all_types = jurisdiction_text_search(primary_search_str, scrubbed_primary_search_str, secondary_search_str,filter, order_by_str, range_start, range_end, primary_exclude, sec_exclude) redirect_url = '/jurisdiction/' if len(objects_all_types) == 1 and ajax == None: #don't redirect if ajax redirect_url = redirect_url + str(objects_all_types[0].get_name_for_url()) + '/' return redirect(redirect_url) else: data['list'] = objects_all_types else: data['message'] = 'This search field requires at least 2 alphabetic (a-z) characters.'; else: if sort_by == '' or sort_by == None or sort_by == 'distance': sort_by = 'distance' else: if sort_by == 'name': sort_by = 'name' elif sort_by == 'last': sort_by = 'last_contributed' else: sort_by = 'last_contributed_by' data['sort_by'] = sort_by if sort_dir == 'asc': data['image_src'] = sort_asc_img data['sort_dir_txt'] = 'ascending' data['sort_dir'] = 'asc' else: data['image_src'] = sort_desc_img data['sort_dir_txt'] = 'descending' data['sort_dir'] = 'desc' data['search_by'] = 'search_by_zip' if page_number != 1: #for zip search, currently doesn't have endless scroll next page, return blank data['list'] = [] return requestProcessor.render_to_response(request,'website/jurisdictions/jurisdiction_list.html', data, '') nearbyJs = {} #geo based approach zipcodes = Zipcode.objects.filter(zip_code=primary_search_str) #TODO: if zip code not found, look for next zip code up if len(zipcodes) < 1: zipcodes = Zipcode.objects.filter(zip_code__gt=primary_search_str)[0:1] if len(zipcodes) > 0: zipcode = zipcodes[0] #should be only one anyway geoHelper = GeoHelper() center = {} center['lat'] = zipcode.latitude center['lon'] = zipcode.longitude #zip code data problem - longitude needs to be inverted: center['lon'] = float(-center['lon']) nearbyJs = getNearbyJs(geoHelper, center, geoHelper.initialDistance, 1) nearbyJs = addDistanceToJs(geoHelper, center, nearbyJs) nearbyJs = sortJs(nearbyJs, sort_by, sort_dir) data['list'] = nearbyJs request.session['primary_search_str'] = primary_search_str data['user'] = request.user message_data = get_system_message(request) #get the message List data = dict(data.items() + message_data.items()) #merge message list to data if (ajax != None): #handle ajax calls if ajax == 'filter': body = requestProcessor.decode_jinga_template(request,'website/jurisdictions/jurisdiction_list.html', data, '') dajax.assign('#jurisdiction_list','innerHTML', body) if page_number == 1: #initialize jscroll if page 1 script = requestProcessor.decode_jinga_template(request, 'website/jurisdictions/jurisdiction_list.js', data, '') dajax.script(script) return HttpResponse(dajax.json()) return HttpResponse(dajax.json()) if page_number != 1: #for endless scroll next page, only render the list return requestProcessor.render_to_response(request,'website/jurisdictions/jurisdiction_list.html', data, '') else: return requestProcessor.render_to_response(request,'website/jurisdictions/jurisdiction_search_results.html', data, '')