Example #1
0
def handle(request, username):
    
    username = username.lower()
    #if there is no logged in user, handle the request here.
    #otherwise, just pass it on to the handler in 'users' or 'recruiters'
    user_type = siteaction.getLoggedInAccountType(request)
    if user_type == 'U':
        return me_viewprofile.handle(request, username)
##    if user_type == 'R':
##        return recruiters_viewprofile.handle(request, username)
    else:
        #this is an anoynymous request, we have to handle
        user = get_object_or_404(models.User, username=username)
        
        settings = models.UserSettings.objects.get(user=user)
        if settings.resume_visibility != 'everyone':
            return siteaction.render_to_response('showmessage.htm', {'msg_heading':'Private Profile', 
                'msg_html':'The user\'s privacy settings do not allow you to view this page. Please <a href="/login.htm">login</a>.'})

        online_status = chat.getOnlineStatus(request, [user.username])
        online_status_html = '<img class="img_online_status" '
        if online_status[user.username] == 'online':
            online_status_html += 'alt="online" title="Online Now" src="' + config.static_server_base_url + '/site/images/common/livestatus-online-white-bg.gif" /> Online Now'
        elif online_status[user.username] == 'away':
            online_status_html += 'alt="away" title="Away" src="' + config.static_server_base_url + '/site/images/common/livestatus-away-white-bg.gif" /> Away'
        else:
            online_status_html += 'alt="offline" title="Offline" src="' + config.static_server_base_url + '/site/images/common/livestatus-offline-white-bg.gif" /> Offline'
                
        dial_now_number = ''
        skype_username = ''
        yahoo_username = ''
        if settings.enable_voip_dial:   dial_now_number = user.phone
        for msnger in models.WebMessenger.objects.filter(account=user.account):
            if msnger.provider == 'skype':  skype_username = msnger.username
            elif msnger.provider == 'yahoo':  yahoo_username = msnger.username
        
        masked = False
        if settings.phone_num_visibility != 'everyone':
            masked = True
        return siteaction.render_to_response('profiles/show.htm',
                            { 'user': user,
                            'online_status_html':online_status_html,
                            'dial_now_number':dial_now_number,
                            'skype_username':skype_username,
                            'yahoo_username':yahoo_username,
                            'personal_desc' : dataplus.replaceHtmlLineBreaks(user.personal_desc),
                            'resume_contents' : codejar_resume.getResumeText(user, masked),
                            'resume_style_sheet' : codejar_resume.getResumeStyleSheet(user),
                            'user_image': dataplus.getStaticUrl(user.image_size3_file_path),
                            'user_original_image': dataplus.getStaticUrl(user.image_file_path),
                            'testimonials': me_viewprofile.getTestimonials(user),
                            'resume_questions': me_viewprofile.getResumeQuestions(user),
                            'interest_in_new_job':settings.interest_in_new_job,
                            })
Example #2
0
def handle(request):
    myself = siteaction.getLoggedInUser(request, True)
    if not myself:
        return HttpResponseRedirect('/login.htm')
    
    if request.method == 'GET':
        hide_fill_profile_pic = False
        action_result = ''
        if dataplus.dictGetVal(request.REQUEST, 'flashId'):
            action_result = dataplus.dictGetVal(statix.action_messages, dataplus.dictGetVal(request.REQUEST, 'flashId'), '')
            hide_fill_profile_pic = True
        revisit = (dataplus.dictGetVal(request.REQUEST, 'action') == 'revisit')
            
        return siteaction.render_to_response('me/createresume.htm',
            {   'resume_contents' : codejar_resume.getResumeText(myself),
                'action_result':action_result,
                'hide_fill_profile_pic':hide_fill_profile_pic,
                'revisit':revisit,
                'myself': myself})
    
    elif request.method == 'POST':
        if dataplus.dictGetVal(request.REQUEST,'action') == 'upload':
            if not (request.FILES and request.FILES.getlist('resume_doc')[0]['filename'].lower().endswith('.doc')):
                return HttpResponseRedirect('createresume.htm?flashId=invalid_doc_upload')
            
            success, error_code = codejar_resume.saveResumeDoc(myself, request, 'resume_doc')
            if not success:
                return HttpResponseRedirect('createresume.htm?flashId=' + error_code)
            
        elif dataplus.dictGetVal(request.REQUEST,'action') == 'save':
            try:
                resumetext = dataplus.dictGetVal(request.REQUEST,'resumetext')
                codejar_resume.saveResume(myself, resumetext)
                myself.save()
            except:
                return HttpResponseRedirect('createresume.htm?flashId=failed_res_save')
        
        return HttpResponseRedirect('createjobsettings.htm')
def handle(request, username):
    myself = siteaction.getLoggedInRecruiter(request)
    if not myself:
        return HttpResponseRedirect('/login.htm')
    
    user = models.User.objects.get(account__username=username)
  
    resume_contents = codejar_resume.getResumeText(user)
                                    
    testimonials = user.testimonials_for_me.all()
    
    return render_to_response('recruiters/viewprofile.htm',
                        {   'username': user.username, 
                            'user_full_name': user.name,
                            'user_description': user.personal_desc,
                            'resume_contents' : resume_contents,
                            'userid': user.id,
                            'user_image': dataplus.getStaticUrl(user.image_size3_file_path),
                            'testimonials': testimonials,
                            'users_friends': getFriends(user),
                            'users_communities': getCommunities(user),
                            'myself': myself
                        })
Example #4
0
def handle(request):
    myself = siteaction.getLoggedInUser(request)
    if not myself:
        return HttpResponseRedirect('/login.htm')
    
    settings = models.UserSettings.objects.get(user=myself)
    if request.method == 'GET':
        action_result = ''
        if dataplus.dictGetVal(request.REQUEST, 'flashId'):
            action_result = dataplus.dictGetVal(statix.action_messages, dataplus.dictGetVal(request.REQUEST, 'flashId'), '')
        
        experience_select_html = ''
        diff_years = None
        if myself.working_since != None:
            diff_years = (datetime.datetime.utcnow() - myself.working_since).days/365        
        experience_select_html = hotmetal.elemSelect([('Select', '-1')], range(0,30),
            lambda x:x, lambda x:x, diff_years, 'name="experience" id="experience" style="width:90px"')
        
        curr_range = str(myself.salary_range_lower) + '-' + str(myself.salary_range_upper)  
        salary_ranges = codejar_resume.getSalaryRanges(settings.country)
        salary_range_select_html = hotmetal.elemSelect([('Prefer not to say', '0-0')], salary_ranges,
            lambda x:x[1], lambda x:x[0], curr_range, 'name="salary_range" id="salary_range" style="width:160px"')
        salary_range_select_html += '(' + settings.currency + ')'
      
##        salary_ranges = statix.getSalaryRanges()
##        salary_range_select_html = hotmetal.elemSelect([('Prefer not to say', '0-0')], salary_ranges,
##            lambda x:x[1], lambda x:x[0], curr_range, 'name="salary_range" id="salary_range" style="width:160px"')
##        
##        locations = models.Location.objects.all().order_by('name')
##        preferred_location = hotmetal.elemSelect([('Select', ''),('Anywhere', 'Anywhere')], locations,
##            lambda x:x.name, lambda x:x.name, settings.preferred_location, 'name="preferred_location" id="preferred_location" style="width:160px"')
        
        interest_in_new_job = hotmetal.elemSelect([('Interested', 'active'),
            ('Only Terrific! Offers', 'passive'), ('Not Interested', 'no')], [],
                None, None, settings.interest_in_new_job, 'name="interest_in_new_job" id="interest_in_new_job" style="width:160px"')
        
        format_list = []
        selected_format = ''
        if not settings.resume_download_format_set:
            format_list = [('Select',''),('PDF', 'pdf'),('HTML', 'html'),('Word Doc', 'doc')]
        else:
            format_list = [('PDF', 'pdf'),('HTML', 'html'),('Word Doc', 'doc')]
            selected_format = settings.preferred_resume_download_format
        
        preferred_resume_download_format = hotmetal.elemSelect(format_list,
                [], None, None, selected_format, 'name="preferred_resume_download_format" id="preferred_resume_download_format" style="width:120px"')
        
        return siteaction.render_to_response('me/editresume.htm',
            {   'resume_contents' : codejar_resume.getResumeText(myself),
                'has_doc_resume':(settings.original_resume_format == 'doc'),
                'has_odt_resume':(settings.original_resume_format == 'odt'),
                'industry_categories_html': codejar_resume.getIndustryCategoriesHtml(myself),
                'experience_select_html':experience_select_html,
                'salary_range_select_html' : salary_range_select_html,
##                'preferred_location':preferred_location,
                'interest_in_new_job': interest_in_new_job, 
                'html_style':myself.resume_contents.html_style,
                'action_result':action_result,
                'preferred_resume_download_format':preferred_resume_download_format,
                'myself': myself})                
    
    elif request.method == 'POST':
        if dataplus.dictGetVal(request.REQUEST,'action') == 'upload':
            success, error_code = codejar_resume.saveResumeDoc(myself, request, 'resume_doc')
            if not success:
                return HttpResponseRedirect('/me/editresume.htm?flashId=' + error_code)
            
            return HttpResponseRedirect('/profiles/' + myself.username + '?flashId=res_uploaded')
##            return HttpResponseRedirect('/me/editresume.htm?flashId=res_uploaded')
            
        elif dataplus.dictGetVal(request.REQUEST,'action') == 'save':
            resumetext = dataplus.dictGetVal(request.REQUEST,'resumetext')
            success = codejar_resume.saveResume(myself, resumetext)
            if not success:
                return HttpResponseRedirect('/me/editresume.htm?flashId=cannot_create_html')
            
            return HttpResponseRedirect('/me/editresume.htm?flashId=res_saved')
            
        elif dataplus.dictGetVal(request.REQUEST,'action') == 'profilesettings':
            #save industry_category
            str_industry_cat = dataplus.dictGetVal(request.REQUEST,'industry_category')
            industry_category = models.IndustryCategory.objects.get(name=str_industry_cat)
            myself.industry_category = industry_category
            
            myself.working_since = datetime.datetime.utcnow() - datetime.timedelta(dataplus.dictGetVal(request.REQUEST,'experience',0,string.atoi) * 365)
            
            #salary in the format 'min_salary-max_salary'
            #this string needs to be split into min and max
            sal_range = dataplus.dictGetVal(request.REQUEST,'salary_range').split('-')
            myself.salary_range_lower = string.atoi(sal_range[0])
            myself.salary_range_upper = string.atoi(sal_range[1])
##            
##            settings.preferred_location = dataplus.dictGetSafeVal(request.REQUEST,'preferred_location')
            settings.interest_in_new_job = dataplus.dictGetVal(request.REQUEST,'interest_in_new_job')
            preferred_format = dataplus.dictGetVal(request.REQUEST,'preferred_resume_download_format')
            if preferred_format != '':
                settings.preferred_resume_download_format = preferred_format
                settings.resume_download_format_set = True
            
            settings.save()
            myself.save()
        
            return HttpResponseRedirect('/me/editresume.htm?flashId=prof_set_saved')
Example #5
0
def handle(request, username):
    action_result = ''
    if dataplus.dictGetVal(request.REQUEST, 'flashId'):
        action_result = dataplus.dictGetVal(statix.action_messages, dataplus.dictGetVal(request.REQUEST, 'flashId'), '')
    
    myself = siteaction.getLoggedInUser(request)
    if not myself:
        return HttpResponseRedirect('/login.htm')
    
    user = get_object_or_404(models.User, username=username)
    settings = models.UserSettings.objects.get(user=user)
    
    online_status_html = ''
    if (user.username == myself.username):
        is_myself = True
    else:
        is_myself = False
        visible = True
        add_btn_visible = False
        if settings.resume_visibility == 'friends' and (user.friends.filter(id=myself.id).count() == 0):
                visible = False
                err_msg = 'This user only allows friends to view the complete profile.'
                add_btn_visible = True
        elif settings.resume_visibility == 'nobody':
            visible = False
            err_msg = 'The privacy settings of this user does not allow you to see the complete profile.'
        
        if not is_myself:
            if user.visits.filter(visitor_username=myself.username, visited_on__gte=(datetime.datetime.utcnow() - datetime.timedelta(days=1))).count() == 0:
                user.visits.add(models.ProfileVisit(visitor_username=myself.username, visitor_name=myself.name, visitor_type=myself.account.account_type))
            
            online_status = chat.getOnlineStatus(request, [user.username])
            online_status_html = '' #disable chat.
	    #online_status_html = '<a href="javascript:openChatWindow(\'' + user.username + '\');" ><img class="img_online_status" id="online_status_' + user.username + '" '
            #if online_status[user.username] == 'online':
            #    online_status_html += 'alt="online" title="Click to chat now" src="' + config.static_server_base_url + '/site/images/common/livestatus-online-white-bg.gif" /> Chat Now</a>'
            #elif online_status[user.username] == 'away':
            #    online_status_html += 'alt="away" title="Away" src="' + config.static_server_base_url + '/site/images/common/livestatus-away-white-bg.gif" /> Away</a>'
            #else:
            #    online_status_html += 'alt="offline" title="Offline" src="' + config.static_server_base_url + '/site/images/common/livestatus-offline-white-bg.gif" /> Offline</a>'
        
        if not visible:
            return siteaction.render_to_response('me/privateprofile.htm', {'user': user,
                                        'user_image': dataplus.getStaticUrl(user.image_size3_file_path),
                                        'user_original_image': dataplus.getStaticUrl(user.image_file_path),
                                        'small_desc': user.small_desc,
                                        'bread_crumb_html': getBreadCrumb(user, myself),
                                        'err_msg': err_msg,
                                        'add_btn_visible': add_btn_visible,
                                        'online_status_html':online_status_html,
                                        'interest_in_new_job':settings.interest_in_new_job,
                                        'myself': myself})        
        
            
    formatting_issue_resolving_url = getFormatResolvingUrl(myself, settings)
    
    dial_now_number = ''
    skype_username = ''
    yahoo_username = ''
    if settings.enable_voip_dial:   dial_now_number = user.phone
    for msnger in models.WebMessenger.objects.filter(account=user.account):
        if msnger.provider == 'skype':  skype_username = msnger.username
        elif msnger.provider == 'yahoo':  yahoo_username = msnger.username
    
    mask_required = False
    if not is_myself:
        if settings.phone_num_visibility == 'nobody':
            mask_required = True
        if settings.phone_num_visibility == 'friends':
            if user.friends.filter(id=myself.id).count() == 0:
                mask_required = True        
    
    return siteaction.render_to_response('me/viewprofile.htm',
                        {   'user': user,
                            'personal_desc' : dataplus.replaceHtmlLineBreaks(user.personal_desc),
                            'dial_now_number':dial_now_number,
                            'skype_username':skype_username,
                            'yahoo_username':yahoo_username,
                            'resume_contents' : codejar_resume.getResumeText(user, mask_required),
                            'resume_style_sheet' : codejar_resume.getResumeStyleSheet(user),
                            'user_image': dataplus.getStaticUrl(user.image_size3_file_path),
                            'user_original_image': dataplus.getStaticUrl(user.image_file_path),
                            'testimonials': getTestimonials(user),
                            'resume_questions': getResumeQuestions(user),
                            'users_friends': getFriends(user),
                            'users_communities': getCommunities(user),
                            'videos_html':getVideosHtml(user),
                            'bread_crumb_html': getBreadCrumb(user, myself),
                            'formatting_issue_resolving_url':formatting_issue_resolving_url,
                            'myself': myself,
                            'is_friend': (myself.friends.filter(id=user.id).count() > 0),
                            'online_status_html':online_status_html,
                            'action_result':action_result,
                            'interest_in_new_job':settings.interest_in_new_job,
                            'is_myself': is_myself
                        })