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, })
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 })
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')
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 })