Example #1
0
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')
Example #2
0
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))
    
Example #8
0
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, '')
Example #9
0
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)
Example #12
0
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, '')    
Example #14
0
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, '')   
     
Example #17
0
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, '') 
Example #18
0
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,
                                               '')
Example #19
0
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, '')
Example #20
0
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, '') 
Example #21
0
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, '')
Example #22
0
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, '')
Example #24
0
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, '')
Example #25
0
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, '')
Example #27
0
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))
Example #29
0
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"
Example #31
0
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
Example #34
0
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"
Example #37
0
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, '')      
Example #46
0
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))
Example #49
0
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, '')
Example #50
0
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, '')
Example #51
0
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, '')