def handle(request, username): username = username.lower() user = get_object_or_404(models.User, username=username) myself = siteaction.getLoggedInUser(request) if not canDownloadResume(user, myself): return siteaction.render_to_response('showmessage.htm', {'msg_heading':'Access denied', 'msg_html':'You do not have permissions to view this page.'}) plain_resume = canViewPlainResume(user, myself) myself = siteaction.getLoggedInUser(request) type_pref = None if myself: if myself.username == user.username: type_pref = dataplus.dictGetVal(request.REQUEST, 'type') file_path = codejar_resume.getResumeFilePath(user, type_pref, not plain_resume) if not file_path: return HttpResponseNotFound('<h1>Page not found.</h1>') ext = os.path.splitext(file_path)[1].lower() read_type = {'.doc':'rb', '.pdf':'rb', '.odt':'rb', '.html':'r'}[ext] mime_type = {'.doc':'application/msword', '.pdf':'application/pdf', '.odt':'application/vnd.oasis.opendocument.text', '.html':'text/html'}[ext] file = open(file_path, read_type) filecontents = file.read() file.close() response = HttpResponse(filecontents, mimetype=mime_type) response['Content-Disposition'] = 'attachment; filename=' + user.username + ext return response
def handle(request): try: myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp('not_logged_in') comm_id = string.atoi(dataplus.dictGetVal(request.REQUEST,'commId')) community = models.Community.objects.get(id=comm_id) title = dataplus.dictGetSafeVal(request.REQUEST,'title') text = dataplus.dictGetSafeVal(request.REQUEST,'text') if community.is_moderated: if not community.members.filter(id=myself.id): return ajaxian.getFailureResp('This is a moderated community. So only members can post.') topic = models.CommunityTopic() topic.community = community topic.title = title topic.started_by = myself topic.last_post_at = datetime.utcnow() topic.save() post = models.CommunityPost() post.topic = topic post.posted_by = myself post.text = text post.save() return ajaxian.getSuccessResp(me_communities_show.getTopicBoxHtml(topic, True)) except: return ajaxian.getFailureResp('unknown')
def handle(request): myself = siteaction.getLoggedInUser(request) if not myself: return HttpResponseRedirect('/login.htm') if request.method == 'GET': action_result = '' if dataplus.dictGetVal(request.REQUEST, 'flashId'): action_result = dataplus.dictGetVal(statix.action_messages, dataplus.dictGetVal(request.REQUEST, 'flashId'), '') myself.image_url = dataplus.getStaticUrl(myself.image_size3_file_path) return siteaction.render_to_response('me/changephoto.htm', { 'action_result':action_result, 'myself':myself}) elif request.method == 'POST': success, error_code, img1, img2, img3, img4 = studio.saveImage_x4_ByDate(request, 'user_' + myself.username, 'photograph') if success: if myself.image_file_path != img1: iolib.deleteFiles([myself.image_file_path, myself.image_size1_file_path, \ myself.image_size2_file_path, myself.image_size3_file_path]) myself.image_file_path = img1 myself.image_size1_file_path = img2 myself.image_size2_file_path = img3 myself.image_size3_file_path = img4 myself.save() chat_settings = models.ChatSettings.objects.get(account=myself.account) chat_settings.image_size1_file_path = img2 chat_settings.image_size2_file_path = img3 chat_settings.image_size3_file_path = img4 chat_settings.save() session_id = request.COOKIES['session_id'] siteaction.updateLivewireData(session_id, myself.account) else: return HttpResponseRedirect('/me/changephoto.htm?flashId=' + error_code) return HttpResponseRedirect('/me/?flashId=usrpic_chnged')
def handle(request): myself = siteaction.getLoggedInUser(request) if not myself: return HttpResponseRedirect('/login.htm') page = dataplus.dictGetVal(request.REQUEST, 'page', 0, string.atoi) start_job_num = page * config.jobs_per_page last_job_num = start_job_num + config.jobs_per_page total_jobs = searchjobs.getMatchingJobsCount(myself) jobs = searchjobs.getMatchingJobs(myself, config.jobs_per_page, start_job_num) if total_jobs == 0: showing_howmany = '0 of 0 matching jobs' else: showing_howmany = str(start_job_num + 1) + '-' + str(start_job_num + len(jobs)) + ' of ' + str(total_jobs) prev_btn = '' next_btn = '' if page != 0: prev_btn = '<td><input class="medium-btn" type="button" name="prev-button" value="PREV" onclick="javascript:window.location.href=\'matchingjobs.htm?page=' + str(page-1) + '\'" /></td>' if last_job_num < total_jobs: next_btn = '<td><input class="medium-btn" type="button" name="next-button" value="NEXT" onclick="javascript:window.location.href=\'matchingjobs.htm?page=' + str(page+1) + '\'" /></td>' buttons = prev_btn + next_btn return siteaction.render_to_response('me/matchingjobs.htm', { 'interesting_jobs': jobs, 'showing_howmany': showing_howmany, 'buttons': buttons, 'myself' : myself })
def handle(request): myself = siteaction.getLoggedInUser(request, True) if not myself: return HttpResponseRedirect('/login.htm') action_id, random_key = codejar_invites.getInviteData(request) if not action_id: return HttpResponseRedirect('/me/') invitation = action_id + '=' + random_key if myself.account.account_state == 'I': post_signup_actions = dataplus.returnIfExists(models.PostSignupActions.objects.filter(user=myself)) if not post_signup_actions: post_signup_actions = models.PostSignupActions(user=myself) if post_signup_actions.actions: post_signup_actions.actions += ',' + invitation else: post_signup_actions.actions = invitation post_signup_actions.save() return HttpResponseRedirect('/me/createresume.htm') else: success, response = codejar_invites.processInvitations(myself, [invitation]) return response
def handle(request): logged_in_type = siteaction.getLoggedInAccountType(request) if logged_in_type == 'U': myself = siteaction.getLoggedInUser(request) mru_data = models.UserMRUData.objects.get(user__id=myself.id) html_file = 'me/inbox.htm' elif logged_in_type == 'R': myself = siteaction.getLoggedInRecruiter(request) mru_data = models.RecruiterMRUData.objects.get(recruiter__id=myself.id) html_file = 'recruiters/inbox.htm' else: return HttpResponseRedirect('/login.htm') if request.method == 'POST': if dataplus.dictGetVal(request.REQUEST, 'action', '') == 'delete': deleteMessages(request, myself) return HttpResponseRedirect('/mailbox/?flashId=msg_del'); new_msgs_count = models.Message.objects.filter(account__id=myself.account.id, folder='inbox', sent_at__gte=mru_data.last_accessed_time).count() action_result = '' if dataplus.dictGetVal(request.REQUEST, 'flashId'): action_result = dataplus.dictGetVal(statix.action_messages, dataplus.dictGetVal(request.REQUEST, 'flashId'), '') return siteaction.render_to_response(html_file, { 'message_box_html': getMessageBoxHtml(request, myself), 'new_msgs_count': new_msgs_count, 'action_result':action_result, 'myself': myself })
def handle(request, comm_id): myself = siteaction.getLoggedInUser(request) if not myself: return HttpResponseRedirect('/login.htm') community = models.Community.objects.select_related().get(id=comm_id) if myself.username != community.owner_username: return siteaction.render_to_response('me/showmessage.htm', {'msg_heading':'Error', 'msg_html':'Unauthorized access.'}) if request.method == 'GET': action_result = '' if dataplus.dictGetVal(request.REQUEST, 'flashId'): action_result = dataplus.dictGetVal(statix.action_messages, dataplus.dictGetVal(request.REQUEST, 'flashId'), '') community.image_url = dataplus.getStaticUrl(community.image_size3_file_path) return siteaction.render_to_response('communities/changephoto.htm', \ {'community':community, 'action_result':action_result, 'myself':myself}) elif request.method == 'POST': success, error_code, img1, img2, img3, img4 = studio.saveImage_x4_ByDate(request, 'comm_' + str(community.id), 'commIcon') if success: if community.image_file_path != img1: iolib.deleteFiles([community.image_file_path, community.image_size1_file_path, \ community.image_size2_file_path, community.image_size3_file_path]) community.image_file_path = img1 community.image_size1_file_path = img2 community.image_size2_file_path = img3 community.image_size3_file_path = img4 community.save() else: return HttpResponseRedirect('/communities/' + str(comm_id) + '/changephoto.htm?flashId=' + error_code) return HttpResponseRedirect('./?flashId=commpic_chnged')
def handle(request): try: logged_in_type = siteaction.getLoggedInAccountType(request) rcvr_usrname = dataplus.dictGetVal(request.REQUEST,'sendTo') if logged_in_type == 'U': myself = siteaction.getLoggedInUser(request) elif logged_in_type == 'R': myself = siteaction.getLoggedInRecruiter(request) else: return ajaxian.getFailureResp('not_logged_in') rcvr_account = models.Account.objects.get(username=dataplus.dictGetVal(request.REQUEST,'sendTo')) text_message = dataplus.dictGetSafeVal(request.REQUEST,'text') html_message = dataplus.replaceHtmlLineBreaks(text_message) subject = dataplus.dictGetSafeVal(request.REQUEST,'subject') def internalSender(rcvr_accounts): mailman.sendMessage(myself.username, [rcvr.username for rcvr in rcvr_accounts], subject, html_message) def externalSender(rcvr_accounts): sender = '"' + myself.name + '" <' + myself.username + '*****@*****.**>' receivers = ['"' + rcvr.name + '" <' + rcvr.email + '>' for rcvr in rcvr_accounts] mailman.sendMail(sender, receivers, subject, html_message, None, None, text_message, reply_to=myself.email) mailman.sendBySettings([rcvr_account], internalSender, externalSender, 'TextMessage') return ajaxian.getSuccessResp('') except: return ajaxian.getFailureResp('unknown')
def handle(request): try: myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp('not_logged_in') invite_email = dataplus.dictGetVal(request.REQUEST,'invite_email') is_valid, err_msg = codejar_validation.validateEmail(invite_email) if not is_valid: return ajaxian.getFailureResp('invalid_email') #see if a user with the same email exists user = dataplus.returnIfExists(models.User.objects.filter(email=invite_email)) if user: if user.username == myself.username: return ajaxian.getSuccessResp('cannot_add_self') invitation = models.FriendInvitation(sent_by=myself, sent_to_email=invite_email) invitation.invite_random_key = dataplus.getUniqueId() invitation.save() subject = myself.name + ' has invited you to Socialray' html_file = '/apps/socialray/website/bigfoot/websitetools/mailtemplates/invitation.html' text_file = '/apps/socialray/website/bigfoot/websitetools/mailtemplates/invitation.txt' mailer.sendInvite(html_file, text_file, myself, subject, (invite_email), {'name':lambda x:x.name, 'username':lambda x:x.username, 'message':lambda x:'', 'invite_random_key':lambda x:str(invitation.invite_random_key)}) return ajaxian.getSuccessResp('') except: return ajaxian.getFailureResp('unknown')
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': resume_visibility = hotmetal.elemSelect([('Everyone', 'everyone'), ('Friends only', 'friends'), ('Nobody', 'nobody')], [], None, None, settings.resume_visibility, 'name="resume_visibility" id="resume_visibility" style="width:120px"') hide_phone_numbers_checked = ('', 'checked="checked"')[settings.phone_num_visibility != 'everyone'] action_result = '' if dataplus.dictGetVal(request.REQUEST, 'flashId'): action_result = dataplus.dictGetVal(statix.action_messages, dataplus.dictGetVal(request.REQUEST, 'flashId'), '') return siteaction.render_to_response('me/editprivacy.htm', {'resume_visibility':resume_visibility, 'hide_phone_numbers_checked':hide_phone_numbers_checked, 'action_result':action_result, 'myself': myself }) elif request.method == 'POST': settings.resume_visibility = dataplus.dictGetVal(request.REQUEST,'resume_visibility') settings.phone_num_visibility = dataplus.dictGetVal(request.REQUEST, 'hide_phone_numbers', 'everyone', lambda x:'friends') settings.save() return HttpResponseRedirect('/me/editprivacy.htm?flashId=privacy_saved')
def handle(request): logged_in_type = siteaction.getLoggedInAccountType(request) if logged_in_type == 'U': myself = siteaction.getLoggedInUser(request) html_file = 'me/sentitems.htm' elif logged_in_type == 'R': myself = siteaction.getLoggedInRecruiter(request) html_file = 'recruiters/sentitems.htm' else: return HttpResponseRedirect('/login.htm') if request.method == 'POST': if dataplus.dictGetVal(request.REQUEST, 'action', '') == 'delete': deleteMessages(request, myself) return HttpResponseRedirect('/mailbox/sentitems.htm?flashId=msg_del'); action_result = '' if dataplus.dictGetVal(request.REQUEST, 'flashId'): action_result = dataplus.dictGetVal(statix.action_messages, dataplus.dictGetVal(request.REQUEST, 'flashId'), '') return siteaction.render_to_response(html_file, { 'message_box_html': getMessageBoxHtml(request, myself), 'action_result':action_result, 'myself': myself })
def handle(request): myself = siteaction.getLoggedInUser(request) if myself is None: return HttpResponseRedirect('/login.htm') else: return render_to_response('recruiters/accountcreated.htm', {'myself': myself})
def handle(request): myself = siteaction.getLoggedInUser(request) if not myself: return HttpResponseRedirect('/login.htm') page = dataplus.dictGetVal(request.REQUEST, 'page', 0, string.atoi) start_ref_num = page * config.referrals_per_page last_ref_num = start_ref_num + config.referrals_per_page total_referrals = myself.received_referrals.count() referrals = myself.received_referrals.order_by('-created_at')[start_ref_num:last_ref_num] for referral in referrals: referral.preview_text = dataplus.getPreviewText(referral.text) if total_referrals == 0: showing_howmany = '0 of 0 job referrals' else: showing_howmany = str(start_ref_num + 1) + '-' + str(start_ref_num + referrals.count()) + ' of ' + str(total_referrals) prev_btn = '' next_btn = '' if page != 0: prev_btn = '<td><input class="medium-btn" type="button" name="prev-button" value="PREV" onclick="javascript:window.location.href=\'referrals.htm?page=' + str(page-1) + '\'" /></td>' if last_ref_num < total_referrals: next_btn = '<td><input class="medium-btn" type="button" name="next-button" value="NEXT" onclick="javascript:window.location.href=\'referrals.htm?page=' + str(page+1) + '\'" /></td>' buttons = prev_btn + next_btn return siteaction.render_to_response('me/referrals.htm', { 'received_referrals': referrals, 'showing_howmany': showing_howmany, 'buttons': buttons, 'myself' : myself })
def handle(request): myself = siteaction.getLoggedInUser(request) if not myself: return HttpResponseRedirect('/login.htm') username = dataplus.dictGetVal(request.REQUEST, 'user') if username and username != myself.username: user = dataplus.returnIfExists(models.User.objects.filter(username=username)) if not user: return siteaction.render_to_response('me/showmessage.htm', {'myself':myself, 'msg_heading':'Error', 'msg_html':'Invalid Request'}) heading = user.name + '\'s Friends' else: user = myself heading = '' page = dataplus.dictGetVal(request.REQUEST, 'page', 0, string.atoi) start_friend_num = page * config.friends_per_page last_friend_num = start_friend_num + config.friends_per_page total_friends = user.friends.count() friends = user.friends.all().order_by('-last_access_time')[start_friend_num:last_friend_num] html = '' if user == myself: friends_usernames = [user.username for user in friends] online_status = chat.getOnlineStatus(request, friends_usernames, 'friend') for friend in friends: html += codejar_network.getDescriptiveThumb(friend, True, online_status[friend.username]) else: for friend in friends: html += codejar_network.getDescriptiveThumb(friend) if total_friends == 0: showing_howmany = '0 of 0 friends' else: showing_howmany = str(page*config.friends_per_page + 1) + '-' + str(page*config.friends_per_page + friends.count()) + ' of ' + str(total_friends) prev_btn = '' next_btn = '' page_url = 'friends.htm?' if username: page_url = 'friends.htm?user='******'&' if page != 0: prev_btn = '<input class="medium-btn" type="button" name="prev-button" value="PREV" onclick="javascript:window.location.href=\'' + page_url + 'page=' + str(page-1) + '\'" />' if last_friend_num < total_friends: next_btn = '<input class="medium-btn" type="button" name="next-button" value="NEXT" onclick="javascript:window.location.href=\'' + page_url + 'page=' + str(page+1) + '\'" />' buttons = prev_btn + next_btn return siteaction.render_to_response('me/friends.htm', { 'friends_html': html, 'showing_howmany': showing_howmany, 'heading': heading, 'buttons': buttons, 'myself' : myself })
def handle(request, job_id): myself = siteaction.getLoggedInUser(request) if not myself: return HttpResponseRedirect('/login.htm') if not job_id: return siteaction.render_to_response('showmessage.htm', { 'msg_heading':'Error', 'msg_html':'Access denied.'}) job = dataplus.returnIfExists(models.JobPosition.objects.filter(id=job_id)) if not job: return siteaction.render_to_response('showmessage.htm', { 'msg_heading':'Error', 'msg_html':'Access denied.'}) if job.posted_by: job.posted_by_name = job.posted_by.name elif job.tag: match = re.match('^.*name\=(?P<name>.*?);',job.tag) if match: job.posted_by_name = match.group('name') if request.method == 'GET': action_result = '' if dataplus.dictGetVal(request.REQUEST, 'flashId'): action_result = dataplus.dictGetVal(statix.action_messages, dataplus.dictGetVal(request.REQUEST, 'flashId'), '') if job.min_compensation == job.max_compensation: job.salary = str(job.min_compensation) else: job.salary = str(job.min_compensation) + ' - ' + str(job.max_compensation) return siteaction.render_to_response('jobs/viewjobposition.htm', { 'myself': myself, 'job':job, 'action_result':action_result, }) elif request.method == 'POST': html_message = '<p>Hello ' + job.posted_by_name + ',</p><p>This is in reference to the job you posted titled "' + job.title + '" for ' + job.company_name + '. ' + \ 'I would like to apply for this position and you can find my resume as an attachment.</p><p>You can always download my latest resume from ' + \ '<a href="' + config.server_base_url + config.profiles_url + '/' + myself.username + '">my profile</a>.</p>' + \ '<p>Regards,<br />' + myself.name + '</p><br /><br /><br /><br /><br /><br />'+ \ 'Don\'t want to receive email alerts? Just change your <a href="' + config.server_base_url + \ '/me/editsettings.htm">Email Forwarding Settings</a>' text_message = 'Hello ' + job.posted_by_name + ',\r\nThis is in reference to the job you posted titled "' + job.title + '" for ' + job.company_name + '. ' + \ 'I would like to apply for this position and you can find my resume as an attachment.\r\nYou can always download my latest resume from my profile at ' + \ config.server_base_url + config.profiles_url + '/' + myself.username + '.\r\n' + \ 'Regards,\r\n' + myself.name + '\r\n\r\n\r\n\r\n\r\n\r\n' + + \ 'Don\'t want to receive email alerts? Just change your Email Forwarding Settings, visit - "' + \ config.server_base_url + '/me/editsettings.htm"' resume_file = codejar_resume.getResumeFilePath(myself) mailman.sendMail('"' + myself.name + '" <' + myself.username + '*****@*****.**>', [job.contact_email], 'Re: Job Posting - ' + job.title, html_message, [resume_file], None, text_message, reply_to=myself.email) return HttpResponseRedirect('/jobs/' + str(job.id) + '/?flashId=resume_fwd')
def handle(request): try: myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp('not_logged_in') new_friend_id = dataplus.dictGetVal(request.REQUEST,'userId') new_friend = dataplus.returnIfExists(models.User.objects.filter(id=new_friend_id)) if not new_friend: return ajaxian.getSuccessResp('user_not_exists') #surprise.... you cannot add yourself, as a friend too! if (str(myself.id) == new_friend_id): return ajaxian.getSuccessResp('cannot_add_yourself') #see if such a friend exists #if so, then don't add friend = dataplus.returnIfExists(myself.friends.filter(id=new_friend_id)) if not friend: #see if there is already a pending friend request #if a request exists from the other user lets make them friends friend_req_from = dataplus.returnIfExists(models.FriendRequest.objects.filter(sent_by__id=new_friend_id, sent_to__id=myself.id)) if friend_req_from: myself.friends.add(new_friend) myself.save() friend_req_from.delete() return ajaxian.getSuccessResp('friend_added') #if a request from myself is there #if so don't add.. its pending friend_req_to = dataplus.returnIfExists(models.FriendRequest.objects.filter(sent_to__id=new_friend_id, sent_by__id=myself.id)) if not friend_req_to: friend_req = models.FriendRequest() friend_req.sent_by = myself friend_req.sent_to = new_friend friend_req.sent_on = datetime.datetime.utcnow() friend_req.save() html_mail_content = '<p>Hello ' + new_friend.name + ',</p><p><a href="' + config.server_base_url + \ '/profiles/' + myself.username + '">' + myself.name + '</a> has sent you a friend request. Please <a href="http://www.socialray.org/me/">Login to Socialray</a> to approve or reject the request.</p>' + \ '<p>Regards,<br />from Socialray</p><br /><br /><br /><br /><br />' text_mail_content = 'Hello ' + new_friend.name + ',\r\n\r\n' + myself.name + '(' + config.server_base_url + \ '/profiles/' + myself.username + ') wants to be your friend. Please login to Socialray to approve or reject the request.\r\n\r\n' + \ 'Regards,\r\nfrom Socialray\r\n\r\n\r\n\r\n\r\n' mailman.sendMail('"' + myself.name + '" <' + myself.username + '*****@*****.**>', [new_friend.email], 'Socialray: ' + myself.name + ' wants to add you as a friend', html_mail_content, None, None, text_mail_content, reply_to=myself.email) return ajaxian.getSuccessResp('request_added') else: return ajaxian.getSuccessResp('pending_request') else: return ajaxian.getSuccessResp('already_a_friend') except: return ajaxian.getFailureResp('unknown')
def handle(request): myself = siteaction.getLoggedInUser(request) if not myself: return HttpResponseRedirect('/login.htm') if request.method == 'GET': action_result = '' if dataplus.dictGetVal(request.REQUEST, 'flashId'): action_result = dataplus.dictGetVal(statix.action_messages, dataplus.dictGetVal(request.REQUEST, 'flashId'), '') return siteaction.render_to_response('me/newcommunity.htm', {'action_result':action_result, 'myself':myself}) elif request.method == 'POST': result, errMsg = codejar_validation.validateCommunityName(dataplus.dictGetVal(request.REQUEST,'communityName')) if not result: return siteaction.render_to_response('me/showmessage.htm', {'myself':myself, 'msg_heading':'Error', 'msg_html':'Invalid user input.'}) comm_name = dataplus.dictGetSafeVal(request.REQUEST,'communityName') if codejar_network.checkCommunityNameExists(comm_name): return siteaction.render_to_response('me/newcommunity.htm', {'communityName':comm_name, 'communityDesc':dataplus.dictGetSafeVal(request.REQUEST,'communityDesc'), 'action_result':dataplus.dictGetVal(statix.action_messages,'comm_name_exists') }) community = models.Community() community.name = comm_name community.desc = dataplus.dictGetSafeVal(request.REQUEST,'communityDesc') community.is_moderated = { 'isPublic':False, 'isModerated':True}[dataplus.dictGetVal(request.REQUEST, 'communityType')] community.owner_username = myself.username community.save() if request.FILES: img_save_success, error_code, img1, img2, img3, img4 = \ studio.saveImage_x4_ByDate(request, 'comm_' + str(community.id), 'commIcon') if img_save_success: community.image_file_path = img1 community.image_size1_file_path = img2 community.image_size2_file_path = img3 community.image_size3_file_path = img4 else: return siteaction.render_to_response('me/newcommunity.htm', {'communityName':community.name, 'communityDesc':community.desc, 'action_result':dataplus.dictGetVal(statix.action_messages,error_code) }) else: community.image_file_path = config.noimg_comm community.image_size1_file_path = config.noimg_comm_50 community.image_size2_file_path = config.noimg_comm_72 community.image_size3_file_path = config.noimg_comm_128 community.save() myself.communities.add(community) return HttpResponseRedirect(config.communities_url + '/' + str(community.id) + '/invite.htm')
def handle(request): myself = siteaction.getLoggedInUser(request) if not myself: return HttpResponseRedirect('/login.htm') if request.method == 'GET': return siteaction.render_to_response('me/searchcommunities.htm', {'showing_search_results': False, 'myself': myself, 'interesting': searchcomm.getInterestingComms(myself)}) elif request.method == 'POST': keywords = dataplus.dictGetVal(request.REQUEST,'keywords') if dataplus.dictGetVal(request.REQUEST,'action') == 'display': page = dataplus.dictGetVal(request.REQUEST,'page',0,string.atoi) pickled_match_list = dataplus.dictGetVal(request.REQUEST,'matches') match_list = cPickle.loads(str(pickled_match_list)) else: keywords = keywords.strip() if keywords != '': match_list = searchcomm.getMatches(keywords) pickled_match_list = cPickle.dumps(match_list) page = 0 else: return siteaction.render_to_response('me/searchcommunities.htm', {'showing_search_results': True, 'myself': myself, 'message':'Please enter a valid search query.'}) start_num = page * config.community_matches_per_page end_num = ((page + 1) * config.community_matches_per_page) display_list = match_list[start_num:end_num] comms_bulk_dict = models.Community.objects.in_bulk(display_list) num_pages = ((len(match_list)-1)/config.community_matches_per_page) + 1 matching_communities = dataplus.getOrderedList(comms_bulk_dict, display_list) for comm in matching_communities: comm.image_url = dataplus.getStaticUrl(comm.image_size2_file_path) if match_list: message = 'Showing ' + str(start_num + 1) + ' - ' + str(start_num + len(matching_communities)) + ' of ' + str(len(match_list)) + ' matches.' else: message = 'Your search did not return any results.' return siteaction.render_to_response('me/searchcommunities.htm', { 'matching_communities': matching_communities, 'matches': cgi.escape(pickled_match_list), 'message': message, 'page_links_html': getPageLinksHtml(num_pages, page), 'keywords': cgi.escape(keywords, True), 'myself': myself, 'showing_search_results': True})
def handle(request): myself = siteaction.getLoggedInUser(request) if not myself: return HttpResponseRedirect( config.server_base_url + "/login.htm?returnUrl=" + config.server_base_url + "/me/editsettings.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"), "" ) return siteaction.render_to_response( "me/editsettings.htm", { "fwd_messages_checked": dataplus.conditionalValue( lambda: settings.email_fwd_messages == True, 'checked="checked"', "" ), "fwd_jobrefs_checked": dataplus.conditionalValue( lambda: settings.email_fwd_jobrefs == True, 'checked="checked"', "" ), "fwd_alerts_checked": dataplus.conditionalValue( lambda: settings.email_fwd_alerts == True, 'checked="checked"', "" ), "action_result": action_result, "myself": myself, }, ) if request.method == "POST": result, errMsg = codejar_validation.validateName(dataplus.dictGetVal(request.REQUEST, "fullname")) if not result: return siteaction.render_to_response( "me/showmessage.htm", {"myself": myself, "msg_heading": "Error", "msg_html": "Invalid user input."} ) myself.name = dataplus.dictGetVal(request.REQUEST, "fullname") myself.account.name = dataplus.dictGetVal(request.REQUEST, "fullname") myself.account.save() myself.save() settings = models.UserSettings.objects.get(user=myself) settings.email_fwd_messages = dataplus.dictGetVal(request.REQUEST, "email_fwd_messages", False, lambda x: True) settings.email_fwd_jobrefs = dataplus.dictGetVal(request.REQUEST, "email_fwd_jobrefs", False, lambda x: True) settings.email_fwd_alerts = dataplus.dictGetVal(request.REQUEST, "email_fwd_alerts", False, lambda x: True) settings.save() return HttpResponseRedirect("/me/editsettings.htm?flashId=acctset_saved")
def handle(request): try: myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp('not_logged_in') html = me_index.getFriendsBoxHtml(myself, request) friends_count = myself.friends.count() return ajaxian.getSuccessResp(friends_count, html) except: return ajaxian.getFailureResp('unknown')
def handle(request): try: myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp('not_logged_in') msg_id = dataplus.dictGetVal(request.REQUEST,'messageId') result, msg = mailman.deleteMessage(myself.account, msg_id) if not result: ajaxian.getFailureResp(msg) else: return ajaxian.getSuccessResp(msg) except: return ajaxian.getFailureResp('unknown')
def handle(request): q_id = dataplus.dictGetVal(request.REQUEST, 'qid', '0', string.atoi) if q_id == 0: return HttpResponseRedirect('/login.htm') question = get_object_or_404(models.ResumeQuestion, id=q_id) myself = siteaction.getLoggedInUser(request) if not myself or myself.id != question.receiver.id: return HttpResponseRedirect('/login.htm?' + urllib.urlencode( {'returnUrl':'/me/answerresumequestion.htm?qid=' + str(q_id)})) if question.receiver.id != myself.id: return siteaction.render_to_response('me/showmessage.htm', {'myself':myself, 'msg_heading': 'Error', 'msg_html': 'Access Denied.'}) if request.method == 'GET': return siteaction.render_to_response('me/answerresumequestion.htm', {'myself':myself, 'question':question, 'is_public_checked':dataplus.conditionalValue(lambda: question.is_public == True, 'checked="checked"', '')}) elif request.method == 'POST': question.answer = dataplus.dictGetSafeVal(request.REQUEST, 'answer') question.is_public = dataplus.dictGetVal(request.REQUEST, 'is_public') question.is_answered = True question.save() html_message = myself.name + ' has answered your question (' + question.question + ').<br />' + \ '<strong>Answer: </strong> ' + question.answer text_message = myself.name + ' has answered your question (' + question.question + ').\r\n' + \ 'Answer: ' + question.answer subject = myself.name + ' has answered your question' def internalSender(rcvr_accounts): rcvr = rcvr_accounts[0] mailman.sendToInbox(myself.username, rcvr.username, subject, html_message, 'TM', 'H') def externalSender(rcvr_accounts): sender = '"' + myself.name + '" <' + myself.username + '*****@*****.**>' receivers = ['"' + rcvr.name + '" <' + rcvr.email + '>' for rcvr in rcvr_accounts] mailman.sendMail(sender, receivers, subject, html_message, None, None, text_message, reply_to=myself.email) mailman.sendBySettings([question.sender], internalSender, externalSender, 'AnswerToResumeQuestion') return HttpResponseRedirect('/me/?flashId=rqa_saved')
def handle(request): myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp('') uname_startswith = dataplus.dictGetVal(request.REQUEST, 'username') html = '<ul>' friends = myself.friends.all() for friend in friends: if (friend.username.startswith(uname_startswith) or friend.name.startswith(uname_startswith)): html += '<li>' + friend.username + '<span class="informal"> (' + friend.name + ')</span>' html += '</ul>' return HttpResponse(html)
def handle(request): req_id = dataplus.dictGetVal(request.REQUEST, 'reqId', '0', string.atoi) myself = siteaction.getLoggedInUser(request) if not myself: return HttpResponseRedirect('/login.htm?' + urllib.urlencode( {'returnUrl':'/me/approvecommjoinreq.htm?reqId=' + str(req_id)})) join_req = dataplus.returnIfExists(models.CommunityJoinRequest.objects.filter(id=req_id)) if not join_req: return siteaction.render_to_response('me/showmessage.htm', { 'myself':myself, 'msg_heading':'Request not found', 'msg_html':'The community join request does not exist. It must have already been processed.'}) if join_req.community.owner_username != myself.username: return siteaction.render_to_response('me/showmessage.htm', { 'myself':myself, 'msg_heading':'Error', 'msg_html':'Access denied.' }) if request.method == 'GET': return siteaction.render_to_response('me/approvecommjoinreq.htm', {'myself':myself, 'join_req':join_req}) elif request.method == 'POST': allowed = False if dataplus.dictGetVal(request.REQUEST,'result') == 'allow': join_req.sent_by.communities.add(join_req.community) allowed = True flashId = 'comm_join_allowed' else: flashId = 'comm_join_denied' join_req.delete() approved_text = ('denied','approved')[allowed] subject = 'Re: Request to join ' + join_req.community.name html_message = '<p>Your request to join \'' + join_req.community.name + '\' was ' + \ approved_text + ' by the administrator.<p><p>Regards,<br />from Socialray</p>' text_message = 'Your request to join \'' + join_req.community.name + '\' was ' + \ approved_text + ' by the administrator.\r\n\r\nRegards,\r\n from Socialray\r\n\r\n' def internalSender(rcvr_accounts): mailman.sendToInbox(myself.username, rcvr_accounts[0].username, subject, html_message) def externalSender(rcvr_accounts): sender = '"' + myself.name + '" <' + myself.username + '*****@*****.**>' receivers = ['"' + rcvr.name + '" <' + rcvr.email + '>' for rcvr in rcvr_accounts] mailman.sendOneWayMail(sender, receivers, subject, html_message, None, None, text_message) mailman.sendBySettings([join_req.sent_by.account], internalSender, externalSender, 'SocialrayAlert') return HttpResponseRedirect('/me?flashId=' + flashId)
def handle(request, comm_id): if request.method == 'GET': community = models.Community.objects.get(id=comm_id) myself = siteaction.getLoggedInUser(request) if not myself: return HttpResponseRedirect('/login.htm') if community.owner_username != myself.username: return siteaction.render_to_response('me/showmessage.htm', { 'myself':myself, 'msg_heading':'Error', 'msg_html':'Access denied' }) member_id = dataplus.dictGetVal(request.REQUEST, 'memberId', 0, string.atoi) member = dataplus.returnIfExists(community.members.filter(id=member_id)) if not member: return siteaction.render_to_response('me/showmessage.htm', { 'myself':myself, 'msg_heading':'Error', 'msg_html':'Invalid request' }) action = dataplus.dictGetVal(request.REQUEST, 'action') if not request.has_key('action'): return siteaction.render_to_response('communities/managemember.htm', { 'community':community, 'myself':myself, 'member_thumbnail': getUserThumb(member), 'member':member, }) if action == 'transfer_ownership': community.owner_username = member.username community.save() flashId = 'comm_trnsfr_owner' elif action == 'delete_membership': member.communities.remove(community) flashId = 'comm_del_mem' elif action == 'delete_posts': member.community_posts.all().delete() flashId = 'comm_del_posts' return HttpResponseRedirect(config.communities_url + '/' + str(community.id) + '?flashId=' + flashId) else: #should never have a post :) return siteaction.render_to_response('me/showmessage.htm', { 'myself':myself, 'msg_heading':'Error', 'msg_html':'Access denied' })
def handle(request): try: myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp('not_logged_in') ref_id = dataplus.dictGetVal(request.REQUEST, 'refId', 0, string.atoi) job_ref = dataplus.returnIfExists(models.JobReferral.objects.filter(id=ref_id)) if not job_ref: return ajaxian.getFailureResp('invalid_request') return ajaxian.getSuccessResp( {'subject':job_ref.subject, 'industry_category':job_ref.industry_category.name, 'min_exp':job_ref.min_experience_years, 'text':job_ref.text}) except: return ajaxian.getFailureResp('unknown')
def handle(request): try: myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp('not_logged_in') resume_file_path = myself.resume_dir + '/' + myself.username + '.doc' if os.path.exists(resume_file_path): os.remove(resume_file_path) settings = models.UserSettings.objects.get(user=myself) settings.has_doc_resume = False settings.save() return ajaxian.getSuccessResp('') except: return ajaxian.getFailureResp('unknown')
def handle(request): try: myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp('not_logged_in') msg_id = dataplus.dictGetVal(request.REQUEST,'messageId') msg = dataplus.returnIfExists(models.Message.objects.filter(id=msg_id, account__id=myself.account.id, folder='trashcan')) if msg: msg.folder = 'inbox' msg.save() return ajaxian.getSuccessResp('moved_to_inbox') else: return ajaxian.getFailureResp('invalid_messageId') except: return ajaxian.getFailureResp('unknown')
def handle(request): try: myself = siteaction.getLoggedInUser(request) if not myself: return ajaxian.getFailureResp('not_logged_in') user_id = dataplus.dictGetVal(request.REQUEST, 'userId') #see if such a friend exists friend = dataplus.returnIfExists(myself.friends.filter(id=user_id)) if friend: myself.friends.remove(friend) return ajaxian.getSuccessResp('removed_friend') else: return ajaxian.getSuccessResp('not_a_friend') except: return ajaxian.getFailureResp('unknown')
def handle(request, comm_id): community = models.Community.objects.get(id=comm_id) logged_in_type = siteaction.getLoggedInAccountType(request) if logged_in_type == 'U': myself = siteaction.getLoggedInUser(request) is_owner = (community.owner_username == myself.username) html_file = 'communities/members.htm' elif logged_in_type == 'R': myself = siteaction.getLoggedInRecruiter(request) html_file = 'communities/members.htm' else: return HttpResponseRedirect('/login.htm') page = dataplus.dictGetVal(request.REQUEST, 'page', 0, string.atoi) start_member_num = page * config.community_members_per_page last_member_num = start_member_num + config.community_members_per_page total_members = community.members.all().count() members = community.members.select_related().order_by('-last_access_time')[start_member_num:last_member_num] html = '' for member in members: html += codejar_network.getCommunityMemberThumb(member, community, is_owner) if total_members == 0: showing_howmany = '0 of 0 members' else: showing_howmany = str(page*config.community_members_per_page + 1) + '-' + str(members.count()) + ' of ' + str(total_members) prev_btn = '' next_btn = '' if page != 0: prev_btn = '<td><a href="members.htm?page=' + str(page-1) + '">PREV</a></td>' if last_member_num < total_members: next_btn = '<td><a href="members.htm?page=' + str(page+1) + '">NEXT</a></td>' buttons = '' if prev_btn or next_btn: buttons = '<table class="button-box"><tr>' + prev_btn + next_btn + '</tr><table>' return siteaction.render_to_response(html_file, { 'community': community, 'members_html': html, 'showing_howmany': showing_howmany, 'buttons': buttons, 'myself' : myself })