def list_states(request): data = {} conn = MySQLdb.connect(host=settings.DATABASES['default']['HOST'], user=settings.DATABASES['default']['USER'], passwd=settings.DATABASES['default']['PASSWORD'], db=settings.DATABASES['default']['NAME'], cursorclass=MySQLdb.cursors.DictCursor) cursor = conn.cursor() cursor.execute( "SELECT DISTINCT(state) FROM website_jurisdiction ORDER BY state ASC") rows = cursor.fetchall() output = "<result>\n" output += "\t<states>\n" for value in rows: for key, value2 in value.items(): output += "\t\t<" + saxutils.escape(saxutils.unescape( str(key))) + ">" + saxutils.escape( saxutils.unescape(str(value2))) + "</" + saxutils.escape( saxutils.unescape(str(key))) + ">\n" output += "\t</states>\n" output += "</result>" #finish up data['xml'] = mark_safe(output) if 'conn' in locals() and conn.open: cursor.close() conn.close() requestProcessor = HttpRequestProcessor(request) return requestProcessor.render_to_response(request, 'website/api.xml', data, 'application/xml')
def task_list(request): requestProcessor = HttpRequestProcessor(request) user = request.user data = {} return requestProcessor.render_to_response( request, 'website/siteadmin/task_list.html', data, '')
def information_accuracy_disclaimer(request): data = {} data['current_nav'] = 'home' requestProcessor = HttpRequestProcessor(request) return requestProcessor.render_to_response( request, 'website/info/information_accuracy_disclaimer.html', data, '')
def terms_of_use(request): data = {} data['current_nav'] = 'home' requestProcessor = HttpRequestProcessor(request) return requestProcessor.render_to_response( request, 'website/info/terms_of_use.html', data, '')
def privacy_policy(request): data = {} data['current_nav'] = 'home' requestProcessor = HttpRequestProcessor(request) return requestProcessor.render_to_response( request, 'website/info/privacy_policy.html', data, '')
def page_404(request): data = {} requestProcessor = HttpRequestProcessor(request) #return HttpResponseNotFound('<h1>Page not found</h1>') print 8898999999999999999999999999 return requestProcessor.render_to_response(request,'website/info/404.html', data, '')
def get_user(request): requestProcessor = HttpRequestProcessor(request) output = {} output['users'] = [] text = requestProcessor.getParameter('text') if text == None: return HttpResponse(json.dumps(output)) #only if text is at least 3 chars if len(text) > 2: users = User.objects.filter(Q(username__icontains=text) | Q(first_name__icontains=text) | Q(last_name__icontains=text)).order_by('username')[0:20] for user in users: user_item = {} user_item['id'] = user.id user_item['username'] = user.username user_item['name'] = '' if user.first_name != None: user_item['name'] += user.first_name + ' ' if user.last_name != None: user_item['name'] += user.last_name output['users'].append(user_item) return HttpResponse(json.dumps(output))
def state_jurisdictions(request, abbreviation): data = { 'groups': [], 'state_name': dict(US_STATES)[abbreviation] } requestProcessor = HttpRequestProcessor(request) jurisdiction_type_groups = [{ 'name': 'State', 'ids': ['S'], 'label': 'State Locations' }, { 'name': 'County', 'ids': ['CO', 'SC', 'CONP', 'CC'], 'label': 'County Locations' }, { 'name': 'County Field Offices', 'ids': ['SCFO'], 'label': 'County Field Offices' }, { 'name': 'Cities', 'ids': ['CI', 'CINP', 'IC'], 'label': 'City Locations'}, { 'name': 'Unincorporated', 'ids': ['U'], 'label': 'Unincorporated Locations' }] any_exist = False for group in jurisdiction_type_groups: jurisdictions = Jurisdiction.objects.filter(state = abbreviation, jurisdiction_type__in = group['ids']).order_by('name') if len(jurisdictions) > 0: any_exist = True items_per_column = int(math.ceil(float(len(jurisdictions)) / settings.PAGE_COLUMNS)) group['columns'] = [jurisdictions[i:i+items_per_column] for i in xrange(0, len(jurisdictions), items_per_column)] data['groups'].append(group) data['any_exist'] = any_exist return requestProcessor.render_to_response(request, 'website/site_map_state.html', data, '')
def get_user(request): requestProcessor = HttpRequestProcessor(request) output = {} output['users'] = [] text = requestProcessor.getParameter('text') if text == None: return HttpResponse(json.dumps(output)) #only if text is at least 3 chars if len(text) > 2: users = User.objects.filter( Q(username__icontains=text) | Q(first_name__icontains=text) | Q(last_name__icontains=text)).order_by('username')[0:20] for user in users: user_item = {} user_item['id'] = user.id user_item['username'] = user.username user_item['name'] = '' if user.first_name != None: user_item['name'] += user.first_name + ' ' if user.last_name != None: user_item['name'] += user.last_name output['users'].append(user_item) return HttpResponse(json.dumps(output))
def search_general(request): requestProcessor = HttpRequestProcessor(request) output = '' text = requestProcessor.getParameter('text') if text == None: return HttpResponse(output) output += '<div>' #a div to enclose everything #jurisdictions output += '<ul id="cities">' jurisdictions = Jurisdiction.objects.filter(name__icontains=text).order_by( 'name', 'state')[:10] for jurisdiction in jurisdictions: output += '<li><a href="/jurisdiction/' + str( jurisdiction.id) + '">' + jurisdiction.show_jurisdiction( ) + '</a></li>' output += '</ul>' #zipcodes for testing output += '<ul id="zipcodes">' zipcodes = Zipcode.objects.filter( zip_code__contains=text).order_by('zip_code')[:10] for zipcode in zipcodes: output += '<li>' + zipcode.city + ', ' + zipcode.state + ' ' + str( zipcode.zip_code) + '</li>' output += '</ul>' output += '</div>' return HttpResponse(output)
def search_general(request): requestProcessor = HttpRequestProcessor(request) output = '' text = requestProcessor.getParameter('text') if text == None: return HttpResponse(output) output += '<div>' #a div to enclose everything #jurisdictions output += '<ul id="cities">' jurisdictions = Jurisdiction.objects.filter(name__icontains=text).order_by('name', 'state')[:10] for jurisdiction in jurisdictions: output += '<li><a href="/jurisdiction/'+str(jurisdiction.id)+'">'+jurisdiction.show_jurisdiction()+'</a></li>' output += '</ul>' #zipcodes for testing output += '<ul id="zipcodes">' zipcodes = Zipcode.objects.filter(zip_code__contains=text).order_by('zip_code')[:10] for zipcode in zipcodes: output += '<li>'+zipcode.city+', '+zipcode.state+' '+str(zipcode.zip_code)+'</li>' output += '</ul>' output += '</div>' return HttpResponse(output)
def jurisdiction_autocomplete(request): MAX_RESULT_COUNT = 7 requestProcessor = HttpRequestProcessor(request) output = '' text = requestProcessor.getParameter('q') if text == None or text == '': return HttpResponse(output) output += '<div>' #a div to enclose everything output += '<ul id="search_results">' jurisdictions = [] mathUtil = MathUtil() if mathUtil.is_number(text) == False: jurisdictions = jurisdiction_text_search(text, scrub_text_search_str(text), "", check_search_level(text) or 'all', 'name', 0, MAX_RESULT_COUNT, exclude(text), '') else: #is number, so zipcode based search zipcodes = Zipcode.objects.filter(zip_code__startswith=text)[0:1] #if zip code not found, look for next zip code up if len(zipcodes) < 1: zipcodes = Zipcode.objects.filter(zip_code__gt=text)[0:1] if len(zipcodes) > 0: zipcode = zipcodes[0] #should be only one anyway geoHelper = GeoHelper() geoHelper.targetCount = MAX_RESULT_COUNT #target number of nearby items to get geoHelper.targetMargin = 2 #+ and - this number of items from the target number to stop center = {} center['lat'] = zipcode.latitude center['lon'] = zipcode.longitude #zip code data problem - longitude needs to be inverted: center['lon'] = float(-center['lon']) jurisdictions = getNearbyJs(geoHelper, center, geoHelper.initialDistance, 1) jurisdictions = addDistanceToJs(geoHelper, center, jurisdictions) jurisdictions = sortJs(jurisdictions, '', '') jurisdictions = jurisdictions[:MAX_RESULT_COUNT] for jurisdiction in jurisdictions: output += '<li><a href="/jurisdiction/'+str(jurisdiction.name_for_url)+'/">'+jurisdiction.show_jurisdiction()+'</a></li>' output += '</ul>' output += '</div>' return HttpResponse(output)
def test_edit(request): requestProcessor = HttpRequestProcessor(request) jurisdiction_id = 130732 dajax = Dajax() data = {} data['jurisdiction_id'] = jurisdiction_id answer_reference_class_obj = AnswerReference() ajax = requestProcessor.getParameter('ajax') if (ajax != None): if (ajax == 'jurisdiction_website_submit'): data['website'] = requestProcessor.getParameter('website') jurisdiction_website_div = requestProcessor.getParameter('jurisdiction_website_div') form_id = 'form_website' question_text = 'website' jurisdiction_id = requestProcessor.getParameter('jurisdiction_id') process_answer(data, question_text, jurisdiction_id, request.user) question_text = "website" body = get_website_html(form_id, question_text, jurisdiction_id, request, 'edit') dajax.assign('#'+str(jurisdiction_website_div),'innerHTML', body) return HttpResponse(dajax.json()) if (ajax == 'jurisdiction_email_submit'): data['email'] = requestProcessor.getParameter('email') jurisdiction_website_div = requestProcessor.getParameter('jurisdiction_email_div') form_id = 'form_email' question_text = 'website' jurisdiction_id = requestProcessor.getParameter('jurisdiction_id') process_answer(data, question_text, jurisdiction_id, request.user) question_text = "website" body = get_email_html(form_id, question_text, jurisdiction_id, request, 'edit') dajax.assign('#'+str(jurisdiction_website_div),'innerHTML', body) return HttpResponse(dajax.json()) return HttpResponse(dajax.json()) ############### website - start ##################### data['jurisdiction_website_div'] = 'jurisdiction_website_div' data['form_website'] = 'form_website' question_text = "website" body = get_website_html(data['form_website'], question_text, jurisdiction_id, request, 'edit') data['body_website'] = body return requestProcessor.render_to_response(request,'website/test/test_edit.html', data, '')
def grant_info(request): data = {} data['current_nav'] = 'home' requestProcessor = HttpRequestProcessor(request) return requestProcessor.render_to_response(request, 'website/info/grant_info.html', data, '')
def test_org(request): requestProcessor = HttpRequestProcessor(request) data = {} organizations = Organization.objects.all().order_by('name')[:10] data['organizations'] = organizations return requestProcessor.render_to_response(request, 'website/test/test_organization.html', data, '')
def test_cron_validate_answers(request): requestProcessor = HttpRequestProcessor(request) user = request.user field_validation_cycle_util = FieldValidationCycleUtil() field_validation_cycle_util.cron_validate_answers() data = {} return requestProcessor.render_to_response(request,'website/test/test_cron_validate_answers.html', data, '')
def site_map(request): data = {} requestProcessor = HttpRequestProcessor(request) template_util = TemplateUtil() data['list_exist'] = template_util.generated_template_exist('site_map_list.html') return requestProcessor.render_to_response(request,'website/site_map.html', data, '')
def page_404(request): data = {} requestProcessor = HttpRequestProcessor(request) #return HttpResponseNotFound('<h1>Page not found</h1>') print 8898999999999999999999999999 return requestProcessor.render_to_response(request, 'website/info/404.html', data, '')
def getting_started_page(request): data = {} data['current_nav'] = '' message_data = get_system_message(request) #get the message List data = dict(data.items() + message_data.items()) #merge message list to data requestProcessor = HttpRequestProcessor(request) return requestProcessor.render_to_response(request,'website/info/getting_started_page.html', data, '')
def state_jurisdictions(request, abbreviation): data = {} requestProcessor = HttpRequestProcessor(request) template_util = TemplateUtil() data['state_name'] = dict(US_STATES)[abbreviation] data['list_exist'] = template_util.generated_state_exist(abbreviation) data['list_template'] = template_util.generated_state_template_path(abbreviation) return requestProcessor.render_to_response(request, 'website/site_map_state.html', data, '')
def site_map(request): data = {} requestProcessor = HttpRequestProcessor(request) template_util = TemplateUtil() data['list_exist'] = template_util.generated_template_exist( 'site_map_list.html') return requestProcessor.render_to_response(request, 'website/site_map.html', data, '')
def test_ie(request): requestProcessor = HttpRequestProcessor(request) dajax = Dajax() data = {} ajax = requestProcessor.getParameter('ajax') if ajax != None: if ajax == 'action1': dajax.assign('#test_div','innerHTML', ajax) return HttpResponse(dajax.json()) return requestProcessor.render_to_response(request, 'website/test/test_ie.html', data, '')
def news(request): data = {} data['current_nav'] = 'news' data['pressreleases'] = PressRelease.objects.all().order_by('published') data['articles'] = Article.objects.all().order_by('published') data['events'] = Event.objects.all().filter(expiration__gte=datetime.now()).order_by('published') message_data = get_system_message(request) #get the message List data = dict(data.items() + message_data.items()) #merge message list to data requestProcessor = HttpRequestProcessor(request) return requestProcessor.render_to_response(request,'website/info/news.html', data, '')
def state_jurisdictions(request, abbreviation): data = {} requestProcessor = HttpRequestProcessor(request) template_util = TemplateUtil() data['state_name'] = dict(US_STATES)[abbreviation] data['list_exist'] = template_util.generated_state_exist(abbreviation) data['list_template'] = template_util.generated_state_template_path( abbreviation) return requestProcessor.render_to_response(request, 'website/site_map_state.html', data, '')
def jurisdiction_browse_by_states(request): data = {} requestProcessor = HttpRequestProcessor(request) message_key = requestProcessor.getParameter('message_key') messageUtil = MessageUtil(message_key) data['system_message_type'] = messageUtil.get_system_message_type() # optional data['system_message_text'] = messageUtil.get_system_message_text() data['page_title'] = "Browse Jurisdictions" #data['state_list'] = US_STATES return requestProcessor.render_to_response(request,'website/jurisdictions/jurisdiction_state_browse.html', data, '')
def j_search(request): requestProcessor = HttpRequestProcessor(request) s = requestProcessor.getParameter('s') js = Jurisdiction.objects.filter(name__istartswith = s).order_by('name','city', 'county', 'state') if len(js) > 20: js = js[0:20] output1 = [{'label':'-----', 'value':'0'}] for j in js: ja = {} ja['label'] = j.show_jurisdiction() ja['value'] = j.id output1.append(ja) output = {'output': output1} return HttpResponse(json.dumps(output))
def test_newsite(request): requestProcessor = HttpRequestProcessor(request) dajax = Dajax() data = {} ajax = requestProcessor.getParameter('ajax') if (ajax != None): if (ajax == 'editmode'): formtype = requestProcessor.getParameter('formtype') name = requestProcessor.getParameter('name') value = requestProcessor.getParameter('value') div = requestProcessor.getParameter('div') help = requestProcessor.getParameter('help') data['formtype'] = formtype data['name'] = name data['help'] = help tp = get_template('website/blocks/form_field.html') c = Context(data) aa = tp.render(c) #aa = '<div class="input"><input type="text" id="id_'+name+'" name="'+name+'"></div>' #aa += '<label class="helptext">'+help+'</label>' dajax.assign('#'+div+'','innerHTML', aa) #dajax.script('alert("'+formtype+'")') return HttpResponse(dajax.json()) return render_to_response('website/test_newsite.html', data, context_instance=RequestContext(request))
def delete_organization(request): requestProcessor = HttpRequestProcessor(request) user = request.user output = {} output['e'] = False output['m'] = '' org_id = requestProcessor.getParameter('org_id') if org_id == None: output['e'] = True output['m'] = 'No org_id provided.' return HttpResponse(json.dumps(output)) try: organization = Organization.objects.get(id=org_id) except: output['e'] = True output['m'] = 'Organization does not exist.' return HttpResponse(json.dumps(output)) try: owner = OrganizationMember.objects.get(organization=organization, role__name='Owner', status='A') except: owner = None #is user the owner or admin? if user.is_staff != True: if owner != None: if user != owner.user: output['e'] = True output[ 'm'] = 'You do not have the access right to delete this organization.' return HttpResponse(json.dumps(output)) #does org has other members besides owner members = OrganizationMember.objects.filter( organization=organization, status='A').exclude(user=owner.user) if len(members) > 0: output['e'] = True output[ 'm'] = 'You cannot delete an organization that has other active members.' return HttpResponse(json.dumps(output)) organization.delete() output['m'] = 'Organization deleted.' return HttpResponse(json.dumps(output))
def process_request(self, request): """Enables anonymous users to receive messages the same way as authenticated users, and sets the anonymous user greeting, if it should be shown""" requestProcessor = HttpRequestProcessor(request) username = requestProcessor.getParameter('username') if username == None: username = '' password = requestProcessor.getParameter('password') if password == None: password = '' #print "username :: " + str(username) #print "password :: " + str(password) authentication = True if username != '' and password != '': users_by_username = User.objects.filter(username__exact=username) users_by_email = User.objects.filter(email__exact=username) if users_by_username: user = users_by_username[0] elif users_by_email: user = users_by_email[0] else: authentication = False if authentication: if user.password == '': user_details = UserDetail.objects.filter(user__exact=user) if user_details: user_detail = user_details[0] if user_detail.old_password != '': print "old_password :: " + str( user_detail.old_password) salt = 'W3yZmDNLeykU2GHmPS4K3Rx40T2Q7VlC7Y5P7wi5McL5YvfzGNOahshX2lta1PbP' #print "set_password :: " + password salt_password = password + ':' + salt md5_password = hashlib.md5( salt_password).hexdigest() print "md5_password :: " + str(md5_password) if md5_password == user_detail.old_password: #print "validated against md5. ok!. save the sha1 version." user.set_password(password) user.save() user_detail.old_password = '' user_detail.save() else: print "validated against md5. NOT OK! not save the sha1 version"
def user_page_views(request): requestProcessor = HttpRequestProcessor(request) user = request.user data = {} # get orgs that have members members_orgs = OrganizationMember.objects.filter( status__iexact='A', organization__status__iexact='A').values( 'organization__id', 'organization__name').order_by('organization__name') data['members_orgs'] = members_orgs # get members for each org org_members = {} orgs_members = OrganizationMember.objects.filter( status__iexact='A', organization__status__iexact='A').values( 'organization__id', 'user__id', 'user__username').order_by('organization__name', 'user__username') for org in orgs_members: if org['organization__id'] not in org_members: org_members[org['organization__id']] = {} org_members[org['organization__id']][ org['user__id']] = org['user__username'] data['org_members'] = org_members # get user page viewings user_pages = {} user_page_views = UserPageView.objects.all().order_by( 'user__username', 'url', 'last_page_view_date') for user_page_view in user_page_views: user_pages[user_page_view.user_id] = user_page_views data['user_pages'] = user_pages #orgmembers = OrganizationMember.objects.filter(status__iexact='A', organization__status__iexact='A').order_by('organization__name', 'user__username') # get non-affiliated users members = OrganizationMember.objects.filter( status__iexact='A', organization__status__iexact='A').values_list('user__id') users_with_orgs = User.objects.filter(id__in=members) users = User.objects.exclude(id__in=users_with_orgs).order_by('username') data['users'] = users return requestProcessor.render_to_response( request, 'website/siteadmin/user_page_views.html', data, '')
def test_timezone(request): requestProcessor = HttpRequestProcessor(request) data = {} #from django.utils.timezone import localtime #bb = pytz.timezone('Asia/Shanghai') omr = Organization.objects.get(id = 43) dh = DatetimeHelper(omr.create_datetime, 'Asia/Shanghai') data['omr'] = dh.showTimeFormat() dh1 = DatetimeHelper(omr.create_datetime) data['omr1'] = dh1.showTimeFormat() data['omr2'] = dh.showStateTimeFormat('DC') return requestProcessor.render_to_response(request, 'website/test/test_timezone.html', data, '')
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 jurisdiction_browse_by_states(request): data = {} requestProcessor = HttpRequestProcessor(request) #message_key = requestProcessor.getParameter('message_key') #messageUtil = MessageUtil(message_key) #data['system_message_type'] = messageUtil.get_system_message_type() # optional #data['system_message_text'] = messageUtil.get_system_message_text() message_data = get_system_message(request) #get the message List data = dict(data.items() + message_data.items()) #merge message list to data data['page_title'] = "Browse Jurisdictions" #data['state_list'] = US_STATES return requestProcessor.render_to_response(request,'website/jurisdictions/jurisdiction_state_browse.html', data, '')
def process_request(self, request): requestProcessor = HttpRequestProcessor(request) user_id = request.user.id path_info = '' if user_id != None: today = datetime.date.today().strftime("%Y-%m-%d") ''' if 'last_page_view_date' in request.session: if today != request.session['last_page_view_date']: request.session['last_page_view_date'] = today self.store_db(path_info, today, user_id) else: request.session['last_page_view_date'] = today self.store_db(path_info, today, user_id) ''' #print request path_info = request.META['PATH_INFO'] if '/media' not in path_info and '/siteadmin' not in path_info: if 'ajax' not in request.POST: if request.META['QUERY_STRING'] != '' and request.META[ 'QUERY_STRING'] != None: path_info = path_info + "?" + request.META[ 'QUERY_STRING'] user_page_view = UserPageView() user_page_view.user_id = user_id user_page_view.url = path_info user_page_view.last_page_view_date = datetime.datetime.now( ) user_page_view.save()
def process_request(self, request): """Enables anonymous users to receive messages the same way as authenticated users, and sets the anonymous user greeting, if it should be shown""" requestProcessor = HttpRequestProcessor(request) username = requestProcessor.getParameter('username') if username == None: username = '' password = requestProcessor.getParameter('password') if password == None: password = '' #print "username :: " + str(username) #print "password :: " + str(password) authentication = True if username != '' and password != '': users_by_username = User.objects.filter(username__exact=username) users_by_email = User.objects.filter(email__exact=username) if users_by_username: user = users_by_username[0] elif users_by_email: user = users_by_email[0] else: authentication = False if authentication: if user.password == '': user_details = UserDetail.objects.filter(user__exact=user) if user_details: user_detail = user_details[0] if user_detail.old_password != '': print "old_password :: " + str(user_detail.old_password) salt = 'W3yZmDNLeykU2GHmPS4K3Rx40T2Q7VlC7Y5P7wi5McL5YvfzGNOahshX2lta1PbP' #print "set_password :: " + password salt_password = password + ':' + salt md5_password = hashlib.md5(salt_password).hexdigest() print "md5_password :: " + str(md5_password) if md5_password == user_detail.old_password: #print "validated against md5. ok!. save the sha1 version." user.set_password(password) user.save() user_detail.old_password = '' user_detail.save() else: print "validated against md5. NOT OK! not save the sha1 version"
def jurisdiction_browse_improved(request): requestProcessor = HttpRequestProcessor(request) state = requestProcessor.getParameter('state') q_state = requestProcessor.getParameter('q') if state ==None or state =='': if q_state !=None and q_state !='': state = q_state if state ==None or state =='': #no state provided, go to US map return jurisdiction_browse_by_states(request) else: #go to state listing sort_by = requestProcessor.getParameter('sort_by') sort_dir = requestProcessor.getParameter('sort_dir') page_num = requestProcessor.getParameter('page') 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' return get_state_jurisdictions(request, state, sort_by, sort_dir, page_num)
def auto_search(request): requestProcessor = HttpRequestProcessor(request) s = requestProcessor.getParameter('s') gid = requestProcessor.getParameter('gid') if gid > 0: acg = AnswerChoiceGroup.objects.get(id = gid) acs = AnswerChoice.objects.filter(label__istartswith = s, answer_choice_group = acg) else: acs = AnswerChoice.objects.filter(label__istartswith = s) output1 = [{'label':'-----', 'value':'0'}] for ac in acs: ja = {} ja['label'] = ac.label ja['value'] = ac.value output1.append(ja) output = {'output': output1} return HttpResponse(json.dumps(output))
def get_state_jurisdictions(request, state='', sort_by='', sort_dir='', page_num=''): requestProcessor = HttpRequestProcessor(request) 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' if sort_by == '': sort_by = 'name' if sort_dir == '': sort_dir = 'asc' href = '/jurisdiction/browse/?state=' + state search_params = {} pagingation_obj = PaginationUtil('get', search_params, href) pagingation_obj.set_up_sorting_by_columns(sort_columns, sort_desc_img, sort_asc_img, sort_class) data = {} data['page_title'] = "Browse Jurisdiction: " + state if state == '': state = 'CA' type = 'CI' if sort_by == '' or sort_by == None: objects = Jurisdiction.objects.filter(state__iexact=state, jurisdiction_type__iexact=type).order_by('name', 'county') else: order_by_str = pagingation_obj.get_order_by_str(sort_by, sort_dir) objects = Jurisdiction.objects.filter(state__iexact=state, jurisdiction_type__iexact=type).order_by(order_by_str) pagingation_obj.set_up_pagination(objects, page_num, django_settings.MAX_REC_PER_PAGE) data['city_list'] = pagingation_obj.getCurrentPageItems() data['pagination'] = pagingation_obj.getPaginationData() data['sort'] = pagingation_obj.get_sorting_html_all_columns() data['system_message_type'] = 'success' data['system_message_text'] = 'A lot of data found for your consumption' #return render(request,'website/jurisdictions/jurisdiction_browse.html', data) return requestProcessor.render_to_response(request,'website/jurisdictions/jurisdiction_browse.html', data, '')
def delete_organization(request): requestProcessor = HttpRequestProcessor(request) user = request.user output = {} output['e'] = False output['m'] = '' org_id = requestProcessor.getParameter('org_id') if org_id == None: output['e'] = True output['m'] = 'No org_id provided.' return HttpResponse(json.dumps(output)) try: organization = Organization.objects.get(id=org_id) except: output['e'] = True output['m'] = 'Organization does not exist.' return HttpResponse(json.dumps(output)) try: owner = OrganizationMember.objects.get(organization=organization, role__name='Owner', status='A') except: owner = None #is user the owner or admin? if user.is_staff != True: if owner != None: if user != owner.user: output['e'] = True output['m'] = 'You do not have the access right to delete this organization.' return HttpResponse(json.dumps(output)) #does org has other members besides owner members = OrganizationMember.objects.filter(organization=organization, status='A').exclude(user=owner.user) if len(members) > 0: output['e'] = True output['m'] = 'You cannot delete an organization that has other active members.' return HttpResponse(json.dumps(output)) organization.delete() output['m'] = 'Organization deleted.' return HttpResponse(json.dumps(output))
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_system_message(request): requestProcessor = HttpRequestProcessor(request) message_list = request.session.get('message_list', []) if message_list == None: message_list = [] message_key = requestProcessor.getParameter('message_key') if message_key !=None: message_list.append(message_key) request.session['message_list'] = None data = {} data['system_message_type'] = '' data['system_message_text'] = '' if len(message_list) > 0: messageUtil = MessageUtil(message_list[0]) data['system_message_type'] = messageUtil.get_system_message_type() # optional data['system_message_text'] = messageUtil.get_system_message_text() return data
def get_organization(request): requestProcessor = HttpRequestProcessor(request) output = {} output['organizations'] = [] text = requestProcessor.getParameter('text') if text == None: return HttpResponse(json.dumps(output)) #only if text is at least 2 chars if len(text) > 1: orgs = Organization.objects.filter(Q(name__icontains=text)).order_by('name')[0:20] for org in orgs: org_item = {} org_item['id'] = org.id org_item['name'] = org.name output['organizations'].append(org_item) return HttpResponse(json.dumps(output))
def user_page_views(request): requestProcessor = HttpRequestProcessor(request) user = request.user data = {} # get orgs that have members members_orgs = OrganizationMember.objects.filter(status__iexact='A', organization__status__iexact='A').values('organization__id', 'organization__name').order_by('organization__name') data['members_orgs'] = members_orgs # get members for each org org_members = {} orgs_members = OrganizationMember.objects.filter(status__iexact='A', organization__status__iexact='A').values('organization__id', 'user__id', 'user__username').order_by('organization__name', 'user__username') for org in orgs_members: if org['organization__id'] not in org_members: org_members[org['organization__id']] = {} org_members[org['organization__id']][org['user__id']]= org['user__username'] data['org_members'] = org_members # get user page viewings user_pages = {} user_page_views = UserPageView.objects.all().order_by('user__username', 'url', 'last_page_view_date') for user_page_view in user_page_views: user_pages[user_page_view.user_id] = user_page_views data['user_pages'] = user_pages #orgmembers = OrganizationMember.objects.filter(status__iexact='A', organization__status__iexact='A').order_by('organization__name', 'user__username') # get non-affiliated users members = OrganizationMember.objects.filter(status__iexact='A', organization__status__iexact='A').values_list('user__id') users_with_orgs = User.objects.filter(id__in=members) users = User.objects.exclude(id__in=users_with_orgs).order_by('username') data['users'] = users return requestProcessor.render_to_response(request,'website/siteadmin/user_page_views.html', data, '')
def states(request): data = {} requestProcessor = HttpRequestProcessor(request) state_all = US_STATES items_per_column = math.ceil(float(len(state_all)) / settings.PAGE_COLUMNS) columns = [] count = 0 column = [] for state_obj in state_all: column.append(state_obj) count += 1 if count >= items_per_column: columns.append(column) column = [] count = 0 if count > 0: #if there's remaining items in last column columns.append(column) data['columns'] = columns return requestProcessor.render_to_response(request,'website/states.html', data, '')
def top_org_contributors(request): requestProcessor = HttpRequestProcessor(request) number = requestProcessor.getParameter('number') if number == None: number = 3 jid = requestProcessor.getParameter('jid') if jid != None: jurisdiction = Jurisdiction.objects.get(id=jid) current_site = get_current_site(request) logo_src = str(current_site.name) + str(django_settings.MEDIA_URL) top_org_contributors = [] rating_category = RatingCategory.objects.get(id=1) if jid == None: top_org_contributors_qryset = OrganizationRating.objects.filter(category__exact=rating_category).order_by('-scale')[:number] else: top_org_contributors_qryset = JurisdictionContributor.objects.filter(jurisdiction__exact=jurisdiction, question_category__isnull=True, user__isnull=True).order_by('-points')[:number] if top_org_contributors_qryset: for org in top_org_contributors_qryset: top_org_contributor = {} top_org_contributor['id'] = org.organization_id org = Organization.objects.get(id=org.organization_id) top_org_contributor['name'] = org.name top_org_contributor['logo_src'] = str(logo_src) + str(org.logo) top_org_contributors.append(top_org_contributor) return HttpResponse(json.dumps(top_org_contributors))
def set_member(request): requestProcessor = HttpRequestProcessor(request) output = {} output['e'] = False output['m'] = '' org_id = requestProcessor.getParameter('org_id') if org_id == None: output['e'] = True output['m'] = 'No org_id provided' return HttpResponse(json.dumps(output)) username = requestProcessor.getParameter('username') if username == None: output['e'] = True output['m'] = 'No username provided' return HttpResponse(json.dumps(output)) try: organization = Organization.objects.get(id=org_id) except: output['e'] = True output['m'] = 'Organization not found.' return HttpResponse(json.dumps(output)) try: user = User.objects.get(username=username) except: output['e'] = True output['m'] = 'User not found.' return HttpResponse(json.dumps(output)) organization.set_member(user) return HttpResponse(json.dumps(output))
def home(request): user = request.user requestProcessor = HttpRequestProcessor(request) data = {} data['accept_tou'] = '' data['home'] = 'True' dajax = Dajax() ajax = requestProcessor.getParameter('ajax') if (ajax != None): #default response for all ajax return HttpResponse(dajax.json()) data['login'] = '******' if user.is_authenticated(): data['login'] = '******' elif user.is_active == False: data['login_status'] = 'account_locked' message_data = get_system_message(request) #get the message List data = dict(data.items() + message_data.items()) #merge message list to data invitation_key = requestProcessor.getParameter('invitation_key') if invitation_key != '' and invitation_key != None: data['action_key'] = 'create_account' data['invitation_key'] = invitation_key action = requestProcessor.getParameter('action') if action != '' and action != None: data['action_key'] = action next_url = requestProcessor.getParameter('next') data['caller'] = 'sign_in_home' data['current_nav'] = 'home' if user.is_authenticated() and (next_url != None and next_url != ''): return redirect(next_url) else: 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 == '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 terms_of_use(request): data = {} data['current_nav'] = 'home' requestProcessor = HttpRequestProcessor(request) return requestProcessor.render_to_response(request,'website/info/terms_of_use.html', data, '')