Example #1
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

    data['recently_updated_jurs'] = JurisdictionRating.recently_updated()

    data['popular_jurs'] = JurisdictionRating.most_popular()

    invitation_key = requestProcessor.getParameter('invitation_key')
    if invitation_key != '' and invitation_key != None:
        data['action_key'] = 'create_account'
        data['invitation_key'] = invitation_key
        if user.is_authenticated():
            logout(request)

        return requestProcessor.render_to_response(request,
                                                   'website/home.html', data,
                                                   '')

    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 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, '')
Example #3
0
def task_list(request):
    requestProcessor = HttpRequestProcessor(request)
    user = request.user
    data = {}

    return requestProcessor.render_to_response(
        request, 'website/siteadmin/task_list.html', data, '')
Example #4
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 #5
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')
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 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 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 #10
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 #13
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 #14
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 #15
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 #16
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 #17
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 #18
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 #20
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 #21
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 #23
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, '')
Example #25
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 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, '')
Example #27
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, '')
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 #29
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, '') 
Example #30
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, '') 
Example #31
0
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, '')
Example #32
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, '')
Example #33
0
def privacy_policy(request):
    data = {}
    data['current_nav'] = 'home'
    
    requestProcessor = HttpRequestProcessor(request)
    return requestProcessor.render_to_response(request,'website/info/privacy_policy.html', data, '')
Example #34
0
def upload(request):
    data = {}
    data['current_nav'] = 'upload'
    
    requestProcessor = HttpRequestProcessor(request)
    return requestProcessor.render_to_response(request,'website/info/upload.html', data, '')
def task_list(request):
    requestProcessor = HttpRequestProcessor(request)
    user = request.user
    data = {}

    return requestProcessor.render_to_response(request,'website/siteadmin/task_list.html', data, '')          
Example #36
0
def reset_password(request, reset_password_key=''):
    data = {}
    error_message = {}    
    requestProcessor = HttpRequestProcessor(request)  
        
    dajax = Dajax()
    
    ajax = requestProcessor.getParameter('ajax')
    if (ajax != None):
        if (ajax == 'launch_reset_password'):
            data = {}
            form_name = 'form_reset_password'
            reset_password_key = requestProcessor.getParameter('reset_password_key')
            data['reset_password_key'] = reset_password_key
            user_details = UserDetail.objects.filter(reset_password_key__exact=reset_password_key)
            if user_details:
                body = requestProcessor.decode_jinga_template(request,'website/accounts/reset_password.html', data, '') 
                script = requestProcessor.decode_jinga_template(request, 'website/accounts/reset_password.js', data, '')                
            else:
                data[form_name+'_fail_reason'] = 'The reset password key is no longer valid'   
                data['site_url'] = settings.SITE_URL               
                body = requestProcessor.decode_jinga_template(request,'website/accounts/expired_reset_password_key.html', data, '') 
                script = requestProcessor.decode_jinga_template(request, 'website/accounts/expired_reset_password_key.js', data, '')
                        
                                
            dajax.assign('#fancyboxformDiv','innerHTML', body)
            dajax.script('controller.showModalDialog("#fancyboxformDiv");')
            dajax.script(script)    
            
            return HttpResponse(dajax.json()) 
        
        if (ajax == 'reset_password_submit'):
            data = {}
            form_name = 'form_reset_password'
            
            reset_password_key = requestProcessor.getParameter('reset_password_key')
            data['password'] = requestProcessor.getParameter('password')
            data['verify_password'] = requestProcessor.getParameter('verify_password')
            data['reset_password_key'] = reset_password_key            
            error_message = validate_reset_password_form_data(data, form_name)  

            if len(error_message) == 0:           
                user_details = UserDetail.objects.filter(reset_password_key__exact=reset_password_key)
                if user_details:
                    user_detail = user_details[0]
                    user = User.objects.get(id=user_detail.user_id)
                    if user:
                        user.set_password(data['password'])
                        user.is_active = 1                        
                        user.save()
                        
                        user_detail.reset_password_key = ''
                        user_detail.save()
                        
                        user = authenticate(username=user.username, password=data['password'])
                        if user is not None:
                            if user.is_active:
                                login(request, user)
                                dajax.script('jQuery.fancybox.close();')  
                                add_system_message(request, 'success_reset_password')
                                dajax.script("window.location.href='"+settings.SITE_URL+"';")
                                return HttpResponse(dajax.json()) 
                            else:
                                error_message[form_name+'_fail_reason'] = 'Disabled account'  
                        else:
                            error_message[form_name+'_fail_reason'] = 'Invalid login'  
                    else:
                        error_message[form_name+'_fail_reason'] = 'The reset password key is no longer valid'                          
                else:
                    error_message[form_name+'_fail_reason'] = 'The reset password key is no longer valid'                      
                        
            
            if len(error_message) > 0:
                for msg_key in error_message.keys():
                    data[msg_key] = error_message.get(msg_key)  
               
                body = requestProcessor.decode_jinga_template(request,'website/accounts/reset_password.html', data, '') 
                script = requestProcessor.decode_jinga_template(request, 'website/accounts/reset_password.js', data, '')                         
            
            dajax.assign('#fancyboxformDiv','innerHTML', body)            
            dajax.script(script)                
            return HttpResponse(dajax.json())   
        
        #default response for all ajax
        return HttpResponse(dajax.json()) 
     
    data['reset_password_key'] = reset_password_key
    data['action_key'] = 'reset_password'
    return requestProcessor.render_to_response(request,'website/home.html', data, '')        
Example #37
0
def searchState(request):
    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()

    error = None

    #state = request.args.get('state')
    #parent_id = request.args.get('parent_id')
    #jurisdiction_id = request.args.get('jurisdiction_id')
    state = request.GET.get('state', False)
    parent_id = request.GET.get('parent_id', False)
    jurisdiction_id = request.GET.get('jurisdiction_id', False)
    jurisdiction_type = request.GET.get('jurisdiction_type', False)
    if state:
        if jurisdiction_type:
            query = "select id,name,jurisdiction_type,parent_id,state,latitude,longitude from website_jurisdiction where `state` = '" + conn.escape_string(
                str(state)
            ) + "' AND `jurisdiction_type` = '" + conn.escape_string(
                str(jurisdiction_type)) + "'"
        else:
            query = "select id,name,jurisdiction_type,parent_id,state,latitude,longitude from website_jurisdiction where `state` = '" + conn.escape_string(
                str(state)) + "'"
        cursor.execute(query)

        output = "<result>\n"

        # we need to account for empty result sets.
        if cursor.fetchone():
            row = cursor.fetchall()
            for value in row:
                output += "\t<jurisdiction>\n"
                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</jurisdiction>\n"
        else:
            output += "\t<error>Jurisdictions Matching Your Criteria Were Not Found</error>"

        output += "</result>"

    elif parent_id:
        cursor.execute(
            "SELECT * FROM website_jurisdiction where `parent_id` = " +
            conn.escape_string(str(parent_id)))
        if cursor.fetchone():
            row = cursor.fetchall()
            output = "<result>\n"
            for value in row:
                output += "\t<jurisdiction>\n"
                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</jurisdiction>\n"
            output += "</result>"
        else:
            output = "<result>\n"
            output += "\t<error>No Jurisdictions Matching Your Criteria Were Found</error>"
            output += "</result>"

    elif jurisdiction_id:
        strippedDescriptionJurisdiction = {}
        strippedDescriptionQuestions = {}
        strippedDescriptionAnswers = {}
        strippedDescriptionComments = {}
        strippedDescriptionVotes = {}
        buildDescriptionJurisdiction = {}
        buildDescriptionAnswers = {}
        buildDescriptionQuestions = {}
        buildDescriptionComments = {}
        buildDescriptionVotes = {}
        buildAnswerID = []
        buildQuestionID = []
        buildRelationID = {}
        buildJurisdictionAnswers = {}
        jurisdictionQuestions = AutoVivification()
        oldkey = []
        newkey = []
        queryJurisdiction = "SELECT * FROM website_jurisdiction where `id` = '" + conn.escape_string(
            str(jurisdiction_id)) + "'"
        cursor.execute(queryJurisdiction)

        jurisdictionInfo = cursor.fetchone()
        if jurisdictionInfo != None:

            ##cursor.execute ("SELECT * FROM website_answerreference where `jurisdiction_id` = '" + conn.escape_string(str(jurisdiction_id)) + "'")
            #queryAnswers = "SELECT website_answerreference.id AS id, website_answerreference.question_id AS question_id, website_answerreference.value AS value, website_answerreference.file_upload AS file_upload, website_answerreference.create_datetime AS create_datetime, website_answerreference.modify_datetime AS modify_datetime, website_answerreference.jurisdiction_id AS jurisdiction_id, website_answerreference.is_current AS is_current, website_answerreference.rating AS rating, website_answerreference.is_callout AS is_callout, website_answerreference.rating_status AS rating_status, website_answerreference.approval_status AS approval_status, website_answerreference.creator_id AS creator_id, website_answerreference.migrated_answer_id AS migrated_answer_id, website_answerreference.status_datetime AS status_datetime, website_answerreference.organization_id AS organization_id FROM website_answerreference, website_question WHERE (website_question.id = website_answerreference.question_id) AND jurisdiction_id = '" + conn.escape_string(str(jurisdiction_id)) + "' AND website_question.form_type != 'CF'"
            queryAnswers = "SELECT * FROM (SELECT website_answerreference.id AS id, website_answerreference.question_id AS question_id, website_answerreference.value AS value, website_answerreference.file_upload AS file_upload, website_answerreference.create_datetime AS create_datetime, website_answerreference.modify_datetime AS modify_datetime, website_answerreference.jurisdiction_id AS jurisdiction_id, website_answerreference.is_current AS is_current, website_answerreference.rating AS rating, website_answerreference.is_callout AS is_callout, website_answerreference.rating_status AS rating_status, website_answerreference.approval_status AS approval_status, website_answerreference.creator_id AS creator_id, website_answerreference.migrated_answer_id AS migrated_answer_id, website_answerreference.status_datetime AS status_datetime, website_answerreference.organization_id AS organization_id FROM website_answerreference, website_question WHERE (website_question.id = website_answerreference.question_id) AND jurisdiction_id = '" + conn.escape_string(
                str(jurisdiction_id)
            ) + "' AND approval_status = 'A' AND website_question.form_type != 'CF' ORDER BY question_id ASC, modify_datetime DESC) as tempTable GROUP BY question_id ASC"
            cursor.execute(queryAnswers)

            jurisdictionAnswers = cursor.fetchall()
            #find the table describers
            cursor.execute("DESCRIBE website_jurisdiction")
            descriptionJurisdiction = cursor.fetchall()
            cursor.execute("DESCRIBE website_answerreference")
            descriptionAnswers = cursor.fetchall()
            cursor.execute("DESCRIBE website_comment")
            descriptionComments = cursor.fetchall()
            cursor.execute("DESCRIBE website_question")
            descriptionQuestions = cursor.fetchall()
            output = "<result>\n"
            output += "\t<jurisdiction>\n"
            c = 0
            i = len(descriptionJurisdiction)
            while c < i:
                strippedDescriptionJurisdiction[descriptionJurisdiction[c][
                    "Field"]] = descriptionJurisdiction[c]["Type"]
                c = c + 1
            c = 0
            i = len(strippedDescriptionJurisdiction)

            #            data = {}
            #            data['xml'] = jurisdictionInfo
            #            cursor.close()
            #            conn.close()
            #            requestProcessor = HttpRequestProcessor(request)
            #            return requestProcessor.render_to_response(request,'website/api.xml', data, 'application/xml')

            for key, value in strippedDescriptionJurisdiction.items():
                buildDescriptionJurisdiction[key] = "\t\t<" + str(
                    key) + " type='" + str(value) + "'>"
                c = c + 1
            for key in jurisdictionInfo.keys():
                output += str(
                    buildDescriptionJurisdiction[key]) + saxutils.escape(
                        saxutils.unescape(str(
                            jurisdictionInfo[key]))) + "</" + saxutils.escape(
                                saxutils.unescape(key)) + ">\n"
            if jurisdictionAnswers:
                for value in jurisdictionAnswers:
                    buildQuestionID.append(value.get('question_id'))
                    buildRelationID[value.get('id')] = value.get('question_id')
            else:
                pass
            #build question query
            queryQuestions = "SELECT * FROM website_question WHERE "
            count = 0
            for value in buildQuestionID:
                if count < 1:
                    queryQuestions += "`id` = '" + conn.escape_string(
                        str(value)) + "'"
                    count = 1
                else:
                    queryQuestions += " OR `id` = '" + conn.escape_string(
                        str(value)) + "'"
            if buildQuestionID:
                cursor.execute(queryQuestions)
                jurisdictionQuestions = cursor.fetchall()
            else:
                pass
            #build comment query
            queryComments = "SELECT * FROM website_comment WHERE "
            count = 0
            for value in buildRelationID:
                if count < 1:
                    queryComments += "`entity_id` = '" + conn.escape_string(
                        str(value)) + "'"
                    count = 1
                else:
                    queryComments += " OR `entity_id` = '" + conn.escape_string(
                        str(value)) + "'"
            if buildRelationID:
                cursor.execute(queryComments)
                jurisdictionComments = cursor.fetchall()
            else:

                pass
            if buildQuestionID:
                c = 0
                i = len(descriptionQuestions)
                while c < i:
                    strippedDescriptionQuestions[descriptionQuestions[c][
                        "Field"]] = descriptionQuestions[c]["Type"]
                    c = c + 1
                c = 0
                i = len(descriptionAnswers)
                while c < i:
                    strippedDescriptionAnswers[descriptionAnswers[c][
                        "Field"]] = descriptionAnswers[c]["Type"]
                    c = c + 1

                c = 0
                i = len(descriptionComments)
                while c < i:
                    strippedDescriptionComments[descriptionComments[c][
                        "Field"]] = descriptionComments[c]["Type"]
                    c = c + 1

                c = 0
                i = len(strippedDescriptionAnswers)
                for key, value in strippedDescriptionAnswers.items():
                    buildDescriptionAnswers[key] = "\t\t\t\t<" + str(
                        key) + " type='" + str(value) + "'>"
                    c = c + 1
                c = 0
                i = len(strippedDescriptionQuestions)
                for key, value in strippedDescriptionQuestions.items():
                    buildDescriptionQuestions[key] = "\t\t\t<" + str(
                        key) + " type='" + str(value) + "'>"
                    c = c + 1

                c = 0
                i = len(strippedDescriptionComments)
                for key, value in strippedDescriptionComments.items():
                    buildDescriptionComments[key] = "\t\t\t\t\t<" + str(
                        key) + " type='" + str(value) + "'>"
                    c = c + 1
                buildCount = len(buildRelationID)
                buildInc = 0

                while buildCount > buildInc:
                    output += "\t\t<question>\n"
                    try:
                        if jurisdictionQuestions:
                            for key, value in jurisdictionQuestions[
                                    buildInc].items():
                                raw = str(jurisdictionQuestions[buildInc][key])
                                phased = raw.replace("&", "&amp;")
                                output += str(
                                    buildDescriptionQuestions[key]
                                ) + saxutils.escape(saxutils.unescape(
                                    phased)) + "</" + saxutils.escape(
                                        saxutils.unescape(key)) + ">\n"
                        output += "\t\t\t<answer>\n"
                        if jurisdictionAnswers:
                            for key, value in jurisdictionAnswers[
                                    buildInc].items():
                                if key == "id":
                                    entity_id = value
                                raw = str(jurisdictionAnswers[buildInc][key])
                                phased = raw.replace("&", "&amp;")
                                output += str(
                                    buildDescriptionAnswers[key]
                                ) + saxutils.escape(saxutils.unescape(
                                    phased)) + "</" + saxutils.escape(
                                        saxutils.unescape(key)) + ">\n"

                        commentInc = 0
                        commentCount = len(jurisdictionComments)
                        while commentInc < commentCount:
                            try:
                                if jurisdictionComments[commentInc][
                                        "entity_id"] == entity_id:
                                    output += "\t\t\t\t<comments>\n"
                                    for key, value in jurisdictionComments[
                                            commentInc].items():
                                        raw = str(
                                            jurisdictionComments[commentInc]
                                            [key])
                                        phased = raw.replace("&", "&amp;")
                                        output += str(
                                            buildDescriptionComments[key]
                                        ) + saxutils.escape(
                                            saxutils.unescape(phased)
                                        ) + "</" + saxutils.escape(
                                            saxutils.unescape(key)) + ">\n"
                                    output += "\t\t\t\t</comments>\n"
                            except IndexError:
                                pass
                            commentInc = commentInc + 1
                        output += "\t\t\t</answer>\n"
                    except IndexError:
                        pass
                    output += "\t\t</question>\n"
                    buildInc = buildInc + 1
            else:
                pass

            output += "\t</jurisdiction>\n"
            output += "</result>"
            output = output.replace(
                "\t\t</question>\n\t\t<question>\n\t</jurisdiction>\n</result>",
                "\t\t</question>\n\t</jurisdiction>\n</result>")

        else:
            #jurisdiction does not exist
            output = "<result>\n"
            output += "\t<error>No Jurisdictions Matching Your Criteria Were Found</error>"
            output += "</result>"

    else:
        cursor.execute("SELECT DISTINCT(state) FROM website_zipcode")
        row = cursor.fetchall()
        output = "<result>\n"
        output += "\t<states>\n"
        for value in row:
            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>"

    data = {}
    data['xml'] = output

    cursor.close()
    conn.close()

    requestProcessor = HttpRequestProcessor(request)
    return requestProcessor.render_to_response(request, 'website/api.xml',
                                               data, 'application/xml')
Example #38
0
def searchState(request):
    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()

    error = None

    # state = request.args.get('state')
    # parent_id = request.args.get('parent_id')
    # jurisdiction_id = request.args.get('jurisdiction_id')
    state = request.GET.get("state", False)
    parent_id = request.GET.get("parent_id", False)
    jurisdiction_id = request.GET.get("jurisdiction_id", False)
    jurisdiction_type = request.GET.get("jurisdiction_type", False)
    if state:
        if jurisdiction_type:
            query = (
                "select id,name,jurisdiction_type,parent_id,state,latitude,longitude from website_jurisdiction where `state` = '"
                + conn.escape_string(str(state))
                + "' AND `jurisdiction_type` = '"
                + conn.escape_string(str(jurisdiction_type))
                + "'"
            )
        else:
            query = (
                "select id,name,jurisdiction_type,parent_id,state,latitude,longitude from website_jurisdiction where `state` = '"
                + conn.escape_string(str(state))
                + "'"
            )
        cursor.execute(query)

        output = "<result>\n"

        # we need to account for empty result sets.
        if cursor.fetchone():
            row = cursor.fetchall()
            for value in row:
                output += "\t<jurisdiction>\n"
                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</jurisdiction>\n"
        else:
            output += "\t<error>Jurisdictions Matching Your Criteria Were Not Found</error>"

        output += "</result>"

    elif parent_id:
        cursor.execute("SELECT * FROM website_jurisdiction where `parent_id` = " + conn.escape_string(str(parent_id)))
        if cursor.fetchone():
            row = cursor.fetchall()
            output = "<result>\n"
            for value in row:
                output += "\t<jurisdiction>\n"
                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</jurisdiction>\n"
            output += "</result>"
        else:
            output = "<result>\n"
            output += "\t<error>No Jurisdictions Matching Your Criteria Were Found</error>"
            output += "</result>"

    elif jurisdiction_id:
        strippedDescriptionJurisdiction = {}
        strippedDescriptionQuestions = {}
        strippedDescriptionAnswers = {}
        strippedDescriptionComments = {}
        strippedDescriptionVotes = {}
        buildDescriptionJurisdiction = {}
        buildDescriptionAnswers = {}
        buildDescriptionQuestions = {}
        buildDescriptionComments = {}
        buildDescriptionVotes = {}
        buildAnswerID = []
        buildQuestionID = []
        buildRelationID = {}
        buildJurisdictionAnswers = {}
        jurisdictionQuestions = AutoVivification()
        oldkey = []
        newkey = []
        queryJurisdiction = (
            "SELECT * FROM website_jurisdiction where `id` = '" + conn.escape_string(str(jurisdiction_id)) + "'"
        )
        cursor.execute(queryJurisdiction)

        jurisdictionInfo = cursor.fetchone()
        if jurisdictionInfo != None:

            ##cursor.execute ("SELECT * FROM website_answerreference where `jurisdiction_id` = '" + conn.escape_string(str(jurisdiction_id)) + "'")
            # queryAnswers = "SELECT website_answerreference.id AS id, website_answerreference.question_id AS question_id, website_answerreference.value AS value, website_answerreference.file_upload AS file_upload, website_answerreference.create_datetime AS create_datetime, website_answerreference.modify_datetime AS modify_datetime, website_answerreference.jurisdiction_id AS jurisdiction_id, website_answerreference.is_current AS is_current, website_answerreference.rating AS rating, website_answerreference.is_callout AS is_callout, website_answerreference.rating_status AS rating_status, website_answerreference.approval_status AS approval_status, website_answerreference.creator_id AS creator_id, website_answerreference.migrated_answer_id AS migrated_answer_id, website_answerreference.status_datetime AS status_datetime, website_answerreference.organization_id AS organization_id FROM website_answerreference, website_question WHERE (website_question.id = website_answerreference.question_id) AND jurisdiction_id = '" + conn.escape_string(str(jurisdiction_id)) + "' AND website_question.form_type != 'CF'"
            queryAnswers = (
                "SELECT * FROM (SELECT website_answerreference.id AS id, website_answerreference.question_id AS question_id, website_answerreference.value AS value, website_answerreference.file_upload AS file_upload, website_answerreference.create_datetime AS create_datetime, website_answerreference.modify_datetime AS modify_datetime, website_answerreference.jurisdiction_id AS jurisdiction_id, website_answerreference.is_current AS is_current, website_answerreference.rating AS rating, website_answerreference.is_callout AS is_callout, website_answerreference.rating_status AS rating_status, website_answerreference.approval_status AS approval_status, website_answerreference.creator_id AS creator_id, website_answerreference.migrated_answer_id AS migrated_answer_id, website_answerreference.status_datetime AS status_datetime, website_answerreference.organization_id AS organization_id FROM website_answerreference, website_question WHERE (website_question.id = website_answerreference.question_id) AND jurisdiction_id = '"
                + conn.escape_string(str(jurisdiction_id))
                + "' AND approval_status = 'A' AND website_question.form_type != 'CF' ORDER BY question_id ASC, modify_datetime DESC) as tempTable GROUP BY question_id ASC"
            )
            cursor.execute(queryAnswers)

            jurisdictionAnswers = cursor.fetchall()
            # find the table describers
            cursor.execute("DESCRIBE website_jurisdiction")
            descriptionJurisdiction = cursor.fetchall()
            cursor.execute("DESCRIBE website_answerreference")
            descriptionAnswers = cursor.fetchall()
            cursor.execute("DESCRIBE website_comment")
            descriptionComments = cursor.fetchall()
            cursor.execute("DESCRIBE website_question")
            descriptionQuestions = cursor.fetchall()
            output = "<result>\n"
            output += "\t<jurisdiction>\n"
            c = 0
            i = len(descriptionJurisdiction)
            while c < i:
                strippedDescriptionJurisdiction[descriptionJurisdiction[c]["Field"]] = descriptionJurisdiction[c][
                    "Type"
                ]
                c = c + 1
            c = 0
            i = len(strippedDescriptionJurisdiction)

            #            data = {}
            #            data['xml'] = jurisdictionInfo
            #            cursor.close()
            #            conn.close()
            #            requestProcessor = HttpRequestProcessor(request)
            #            return requestProcessor.render_to_response(request,'website/api.xml', data, 'application/xml')

            for key, value in strippedDescriptionJurisdiction.items():
                buildDescriptionJurisdiction[key] = "\t\t<" + str(key) + " type='" + str(value) + "'>"
                c = c + 1
            for key in jurisdictionInfo.keys():
                output += (
                    str(buildDescriptionJurisdiction[key])
                    + saxutils.escape(saxutils.unescape(str(jurisdictionInfo[key])))
                    + "</"
                    + saxutils.escape(saxutils.unescape(key))
                    + ">\n"
                )
            if jurisdictionAnswers:
                for value in jurisdictionAnswers:
                    buildQuestionID.append(value.get("question_id"))
                    buildRelationID[value.get("id")] = value.get("question_id")
            else:
                pass
            # build question query
            queryQuestions = "SELECT * FROM website_question WHERE "
            count = 0
            for value in buildQuestionID:
                if count < 1:
                    queryQuestions += "`id` = '" + conn.escape_string(str(value)) + "'"
                    count = 1
                else:
                    queryQuestions += " OR `id` = '" + conn.escape_string(str(value)) + "'"
            if buildQuestionID:
                cursor.execute(queryQuestions)
                jurisdictionQuestions = cursor.fetchall()
            else:
                pass
            # build comment query
            queryComments = "SELECT * FROM website_comment WHERE "
            count = 0
            for value in buildRelationID:
                if count < 1:
                    queryComments += "`entity_id` = '" + conn.escape_string(str(value)) + "'"
                    count = 1
                else:
                    queryComments += " OR `entity_id` = '" + conn.escape_string(str(value)) + "'"
            if buildRelationID:
                cursor.execute(queryComments)
                jurisdictionComments = cursor.fetchall()
            else:

                pass
            if buildQuestionID:
                # print queryComments
                c = 0
                i = len(descriptionQuestions)
                while c < i:
                    strippedDescriptionQuestions[descriptionQuestions[c]["Field"]] = descriptionQuestions[c]["Type"]
                    c = c + 1
                c = 0
                i = len(descriptionAnswers)
                while c < i:
                    strippedDescriptionAnswers[descriptionAnswers[c]["Field"]] = descriptionAnswers[c]["Type"]
                    c = c + 1

                c = 0
                i = len(descriptionComments)
                while c < i:
                    strippedDescriptionComments[descriptionComments[c]["Field"]] = descriptionComments[c]["Type"]
                    c = c + 1

                c = 0
                i = len(strippedDescriptionAnswers)
                for key, value in strippedDescriptionAnswers.items():
                    buildDescriptionAnswers[key] = "\t\t\t\t<" + str(key) + " type='" + str(value) + "'>"
                    c = c + 1
                c = 0
                i = len(strippedDescriptionQuestions)
                for key, value in strippedDescriptionQuestions.items():
                    buildDescriptionQuestions[key] = "\t\t\t<" + str(key) + " type='" + str(value) + "'>"
                    c = c + 1

                c = 0
                i = len(strippedDescriptionComments)
                for key, value in strippedDescriptionComments.items():
                    buildDescriptionComments[key] = "\t\t\t\t\t<" + str(key) + " type='" + str(value) + "'>"
                    c = c + 1
                buildCount = len(buildRelationID)
                buildInc = 0

                while buildCount > buildInc:
                    output += "\t\t<question>\n"
                    try:
                        # print "in the try"
                        if jurisdictionQuestions:
                            for key, value in jurisdictionQuestions[buildInc].items():
                                raw = str(jurisdictionQuestions[buildInc][key])
                                phased = raw.replace("&", "&amp;")
                                output += (
                                    str(buildDescriptionQuestions[key])
                                    + saxutils.escape(saxutils.unescape(phased))
                                    + "</"
                                    + saxutils.escape(saxutils.unescape(key))
                                    + ">\n"
                                )
                        output += "\t\t\t<answer>\n"
                        if jurisdictionAnswers:
                            for key, value in jurisdictionAnswers[buildInc].items():
                                if key == "id":
                                    entity_id = value
                                raw = str(jurisdictionAnswers[buildInc][key])
                                phased = raw.replace("&", "&amp;")
                                output += (
                                    str(buildDescriptionAnswers[key])
                                    + saxutils.escape(saxutils.unescape(phased))
                                    + "</"
                                    + saxutils.escape(saxutils.unescape(key))
                                    + ">\n"
                                )
                        # print "done with try"

                        commentInc = 0
                        commentCount = len(jurisdictionComments)
                        # print commentCount
                        # print "second nasty loop"
                        while commentInc < commentCount:
                            try:
                                # print "in the try"
                                if jurisdictionComments[commentInc]["entity_id"] == entity_id:
                                    output += "\t\t\t\t<comments>\n"
                                    for key, value in jurisdictionComments[commentInc].items():
                                        raw = str(jurisdictionComments[commentInc][key])
                                        phased = raw.replace("&", "&amp;")
                                        output += (
                                            str(buildDescriptionComments[key])
                                            + saxutils.escape(saxutils.unescape(phased))
                                            + "</"
                                            + saxutils.escape(saxutils.unescape(key))
                                            + ">\n"
                                        )
                                    output += "\t\t\t\t</comments>\n"
                                # print "finished the try"
                            except IndexError:
                                pass
                            commentInc = commentInc + 1
                        output += "\t\t\t</answer>\n"
                    except IndexError:
                        print "passed on " + str(buildInc)
                        pass
                    output += "\t\t</question>\n"
                    buildInc = buildInc + 1
            else:
                # print "nothing here"
                pass

            output += "\t</jurisdiction>\n"
            output += "</result>"
            output = output.replace(
                "\t\t</question>\n\t\t<question>\n\t</jurisdiction>\n</result>",
                "\t\t</question>\n\t</jurisdiction>\n</result>",
            )

        else:
            # jurisdiction does not exist
            output = "<result>\n"
            output += "\t<error>No Jurisdictions Matching Your Criteria Were Found</error>"
            output += "</result>"

    else:
        cursor.execute("SELECT DISTINCT(state) FROM website_zipcode")
        row = cursor.fetchall()
        output = "<result>\n"
        output += "\t<states>\n"
        for value in row:
            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>"

    data = {}
    data["xml"] = output

    cursor.close()
    conn.close()

    requestProcessor = HttpRequestProcessor(request)
    return requestProcessor.render_to_response(request, "website/api.xml", data, "application/xml")
Example #39
0
def get_info(request):
    data = {}
    requestProcessor = HttpRequestProcessor(request)
    dajax = Dajax()
          
    ajax = requestProcessor.getParameter('ajax')
    if (ajax != None):
        if (ajax == 'privacy_policy'):
            body = requestProcessor.decode_jinga_template(request,'website/info/privacy_policy_modal.html', data, '') 
            #dajax.assign('#main_content','innerHTML', body)    
            dajax.assign('#fancyboxformDiv','innerHTML', body)  
            dajax.script('controller.showModalDialog("#fancyboxformDiv");')
            return HttpResponse(dajax.json())  
        
    
        if (ajax == 'terms_of_use'):
            body = requestProcessor.decode_jinga_template(request,'website/blocks/text_terms_of_use.html', data, '') 
            dajax.assign('#main_content','innerHTML', body)
            #dajax.assign('#fancyboxformDiv','innerHTML', body)  
            #dajax.script('controller.showModalDialog("#fancyboxformDiv");')    
            return HttpResponse(dajax.json())  
        
        if (ajax == 'doe_grant'):
            body = requestProcessor.decode_jinga_template(request,'website/blocks/text_doe_grant.html', data, '') 
            #dajax.assign('#main_content','innerHTML', body)    
            dajax.assign('#fancyboxformDiv','innerHTML', body)  
            dajax.script('controller.showModalDialog("#fancyboxformDiv");')
            return HttpResponse(dajax.json()) 
        
        if (ajax == 'send_feedback'):
            data = {}     
            data['form_id'] = 'form_send_feedback'            
            
            data['feedback'] = requestProcessor.getParameter('feedback')    
            if data['feedback'] == None:
                data['feedback'] = ''                                                       
             
                body = requestProcessor.decode_jinga_template(request,'website/info/feedback.html', data, '') 
                script = requestProcessor.decode_jinga_template(request, 'website/info/feedback.js', data, '')   
                dajax.assign('#fancyboxformDiv','innerHTML', body)                   
                dajax.script('controller.showModalDialog("#fancyboxformDiv");')
                dajax.script(script)                  

                return HttpResponse(dajax.json())  
            else:           
                data['email'] = settings.FEEDBACK_EMAIL
                data['user'] = request.user
                data['feedback'] = data['feedback'].lstrip('')
                if request.user.is_authenticated():
                    orgmembers = OrganizationMember.objects.filter(user = data['user'], status = 'A')   
                    user_orgs = ''
                    if len(orgmembers) > 0:
                        for orgmember in orgmembers:
                            user_orgs += "," + orgmember.organization.name 
                            
                        user_orgs.lstrip(',')
                        
                    data['user_orgs'] = user_orgs;
                    user_details = UserDetail.objects.filter(user=data['user'])
                    data['user_detail'] = user_details[0]

                    data['first_name'] = data['user'].first_name     
                    data['last_name'] = data['user'].last_name
                    data['username'] = data['user'].username
                    data['title'] = data['user_detail'].title    
                    data['user_email'] = data['user'].email     
                                        
                else:
                    data['first_name'] = requestProcessor.getParameter('first_name')        # required
                    data['last_name'] = requestProcessor.getParameter('last_name')          # required
                    data['user_email'] = requestProcessor.getParameter('email')        # required
                    data['title'] = requestProcessor.getParameter('title')      
                    data['user_orgs'] = requestProcessor.getParameter('org')          # required
                    data['username'] = ''
                
                                                
                email_feedback(data)
                dajax.script('jQuery.fancybox.close();')  
                dajax.script("controller.showMessage('Your feedback has been sent and will be carefully reviewed.', 'success');")                                                        
        
        return HttpResponse(dajax.json())              
    data['current_nav'] = 'home'
    return requestProcessor.render_to_response(request,'website/home.html', data, '')
Example #40
0
def site_map(request):
    data = {}
    requestProcessor = HttpRequestProcessor(request)
    return requestProcessor.render_to_response(request, 'website/site_map.html', {}, '') 
def maintenace_mode(request):
    data = {}
    requestProcessor = HttpRequestProcessor(request)
    
    return requestProcessor.render_to_response(request,'maintenance.html', data, '')    
Example #42
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, '')
def test_search(request):
    requestProcessor = HttpRequestProcessor(request)
    data = {}
    
    return requestProcessor.render_to_response(request, 'website/test/test_search.html', data, '')
Example #44
0
def submit_suggestion(request):
    validation_util_obj = FieldValidationCycleUtil()
    from website.models.questionAnswer import Question
    from website.models import Jurisdiction
    data = {}
    errors = []

    # convert POST to a string for parsing xml
    post_string = request.raw_post_data

    # strip extra whitespace
    while post_string != re.sub("\s<", "<", post_string):
        post_string = re.sub("\s<", "<", post_string)
    while post_string != re.sub("\s>", ">", post_string):
        post_string = re.sub("\s>", ">", post_string)
    while post_string != re.sub(">\s", ">", post_string):
        post_string = re.sub(">\s", ">", post_string)
    while post_string != re.sub("<\s", "<", post_string):
        post_string = re.sub("<\s", "<", post_string)

    try:
        xmlDoc = minidom.parseString(post_string)
    except Exception:
        errors.append("Could not Parse XML")

    del post_string

    if len(errors) > 0:
        output = '<errors>\n'
        for this_error in errors:
            output += "\t<error>" + this_error + "</error>\n"
        output += '</errors>'
    else:

        # define directives
        directives = dict()
        directive_names = [
            'api_username',
            'api_key',
            'question_id',
            'jurisdiction_id',
            'answer_value',
        ]
        try:
            temp = xmlDoc.getElementsByTagName('request')[0]
        except Exception:
            errors.append(
                "Could not find 'request' node - please see documentation at https://github.com/solarpermit/solarpermit/wiki"
            )
        else:
            temp = None
            for node in xmlDoc.getElementsByTagName('request')[0].childNodes:
                if node.nodeType == 1:  #element type
                    if node.localName in directive_names and node.firstChild is not None:
                        directives[
                            node.localName] = node.firstChild.data.strip()
                    else:
                        if node.firstChild is None:
                            errors.append(
                                node.localName +
                                ' is empty.  Please declare a value for ' +
                                node.localName + '.')
                        else:
                            errors.append(' is an unknown directive')

        # error testing
        if int(len(directives)) != 5:
            errors.append(
                'Incorrect number of Directive values - either something is empty, or something is missing ('
                + str(len(directives)) + ' != 5).')
        if 'api_username' not in directives:
            errors.append('Your api_username must be provided in the request.')
        if 'api_key' not in directives:
            errors.append('Your api_key must be provided in the request.')
        if 'question_id' not in directives:
            errors.append('You must declare a question_id.')
        if 'question_id' in directives and (
                not is_numeric(directives['question_id'])
                or int(directives['question_id']) < 1):
            errors.append(
                'QuestinID must be a positive integer greater than zero.')
        if 'jurisdiction_id' not in directives:
            errors.append('You must declare a jurisdiction_id')
        if 'jurisdiction_id' in directives and (
                not is_numeric(directives['jurisdiction_id'])
                or int(directives['jurisdiction_id']) < 1):
            errors.append(
                'jurisdiction_id must be a positive integer greater than zero.'
            )
        if 'answer_value' not in directives:
            errors.append(
                'You can not suggest an answer without the data for that answer declared as an answer_value.'
            )

        # user validation pre-work
        try:
            # get the user id of this user
            thisUserId = int(
                User.objects.get(username=directives['api_username']).pk)
            # get the api key for this user
            apiKeys = API_Keys.objects.filter(user_id=thisUserId)
            for row in apiKeys:
                thisApiKey = row.key
        except Exception:
            errors.append('Failed to look up your username.')

        if len(errors) > 0:
            output = '<errors>\n'
            for this_error in errors:
                output += '\t<error>' + this_error + '</error>\n'
            output += '</errors>'
        else:
            # validate user
            if directives['api_key'] != thisApiKey:
                output = '<errors>\n\t<error>User validation failure - check api_key for accuracy</error>\n</errors>'
            else:
                ## validate jurisdiction_id
                try:
                    jurisdiction = Jurisdiction.objects.get(
                        id=directives['jurisdiction_id'])
                except Exception:
                    errors.append(
                        'The jurisdiction_id you have declared does not exist, or is invalid.'
                    )
                if len(errors) > 0:
                    output = '<errors>\n'
                    for this_error in errors:
                        output += '\t<error>' + this_error + '</error>\n'
                    output += '</errors>'
                else:
                    ### validate question_id
                    try:
                        question = Question.objects.get(
                            id=directives['question_id'])
                    except Exception:
                        errors.append(
                            'The question_id you have declared does not exist, or is invalid.'
                        )
                    if len(errors) > 0:
                        output = '<errors>\n'
                        for this_error in errors:
                            output += '\t<error>' + this_error + '</error>\n'
                        output += '</errors>'
                    else:
                        #### validate answer format can be parsed as json
                        if question.default_value is None or len(
                                question.default_value) < 1:
                            default_format = json.loads('{"value":""}')
                        else:
                            default_format = json.loads(question.default_value)
                        try:
                            this_format = json.loads(
                                directives['answer_value'])
                        except Exception:
                            errors.append('Cannot parse answer_value as JSON')
                        if len(errors) > 0:
                            output = '<errors>\n'
                            for this_error in errors:
                                output += '\t<error>' + this_error + '</error>\n'
                            output += '</errors>'
                        else:
                            output = ''
                            #### validate answer format has matching keys
                            if not ((all(key in this_format
                                         for key in default_format)) and
                                    (all(key in default_format
                                         for key in this_format))):
                                if int(directives['question_id']) != 16:
                                    errors.append(
                                        'answer_value (JSON) does not match format of default_value for this question.'
                                    )
                                else:
                                    # for pricing formula
                                    # check to make sure each key is a direct, or regex match to an incremented key name.
                                    suspect_keys = []
                                    valid_keys = [
                                        'percentage_of_total_system_cost_cap_amt',
                                        'percentage_of_total_system_cost',
                                        'flat_rate_amt',
                                    ]
                                    for key in this_format:
                                        # strip trailing underscores and digits
                                        new_item = re.sub(
                                            '[_]\d*[_]\d*$', '', key)
                                        if new_item not in suspect_keys:
                                            suspect_keys.append(new_item)
                                    for key in default_format:
                                        # strip trailing underscores and digits
                                        new_item = re.sub(
                                            '[_]\d*[_]\d*$', '', key)
                                        if new_item not in valid_keys:
                                            valid_keys.append(new_item)
                                    if not ((all(item in suspect_keys
                                                 for item in valid_keys)) and
                                            (all(item in valid_keys
                                                 for item in suspect_keys))):
                                        error_string = 'answer_value (JSON) has unrecognized keys for this question.'
                                        error_string += ' ... invalid keys (does not include incremented portion key names): '
                                        for item in suspect_keys:
                                            if item not in valid_keys:
                                                error_string += ' ' + item + ', '
                                        error_string += ' ... missingkeys (does not include incremented portion of key names): '
                                        for item in valid_keys:
                                            if item not in suspect_keys:
                                                error_string += item + ', '

                                        errors.append(error_string)

                            if len(errors) > 0:
                                output = '<errors>\n'
                                for this_error in errors:
                                    output += '\t<error>' + this_error + '</error>\n'
                                output += '</errors>'
                            else:
                                user = User.objects.get(id=thisUserId)
                                is_callout = 0
                                try:
                                    arcf = validation_util_obj.save_answer(
                                        question, directives['answer_value'],
                                        jurisdiction, 'AddRequirement', user,
                                        is_callout)
                                    output = '<Result>' + str(
                                        arcf) + '</Result>'
                                except Exception as inst:
                                    output = '<errors>\n\t<error>Failed to save answer suggestion.</error><detail>\n'
                                    output += str(
                                        type(inst))  # the exception instance
                                    output += str(inst.args)
                                    output += '</detail></errors>'
                                '''
                                question_id = 93
                                question = Question.objects.get(id=question_id)
                                
                                answer = '{"value":"Written Via API x?"}'
                            
                                jurisdiction_id = 1
                                jurisdiction = Jurisdiction.objects.get(id=jurisdiction_id)
                                
                                user_id = 3
                                user = User.objects.get(id=user_id)
                                
                                is_callout = 0
                                
                                answer_id = None
                                
                                #arcf = validation_util_obj.save_answer(question, answer, jurisdiction, 'AddRequirement', user, is_callout, answer_id)
                                arcf = 'foo'
                                
                                output = '<testing>\n\n'
                                
                                output += str(arcf)
                                
                                output += '\n\n</testing>'
                                '''

    #finish up
    data['xml'] = mark_safe(output)
    requestProcessor = HttpRequestProcessor(request)
    return requestProcessor.render_to_response(request, 'website/api.xml',
                                               data, 'application/xml')
Example #45
0
def maintenace_mode(request):
    data = {}
    requestProcessor = HttpRequestProcessor(request)

    return requestProcessor.render_to_response(request, 'maintenance.html',
                                               data, '')
Example #46
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 #47
0
def contributions(request):
    data = {}
    data['current_nav'] = 'home'
    
    requestProcessor = HttpRequestProcessor(request)
    return requestProcessor.render_to_response(request,'website/info/contribution.html', data, '')