Esempio n. 1
0
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    })
Esempio n. 2
0
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):
    myself = siteaction.getLoggedInRecruiter(request)
    if not myself:
        return HttpResponseRedirect('/login.htm')
    
    if request.method == 'GET':
        return render_to_response('recruiters/resumesearch.htm', { 'myself':myself,
                                })
    elif request.method == 'POST':
        srch_query = models.ResumeSearchQuery()
        srch_query.recruiter = myself
        industry_id = dataplus.dictGetVal(request.REQUEST,'industry_category', 0, string.atoi)
        if industry_id > 0:
            srch_query.industry_category = models.IndustryCategory.objects.get(id=industry_id)
        srch_query.designation = dataplus.dictGetVal(request.REQUEST,'designation',escapeHtml=True)
        srch_query.mandatory_skills = dataplus.dictGetVal(request.REQUEST,'mandatory_skills',escapeHtml=True)
        srch_query.desired_skills = dataplus.dictGetVal(request.REQUEST,'desired_skills',escapeHtml=True)
        srch_query.location = dataplus.dictGetVal(request.REQUEST,'location',escapeHtml=True)
        srch_query.min_exp_years = dataplus.dictGetVal(request.REQUEST,'min_exp_years')
        srch_query.educational_qualifications = dataplus.dictGetVal(request.REQUEST,'qualifications',escapeHtml=True)
        
        srch_query.save()
        excess = myself.search_queries.count() - 5
        if excess > 0:
            for query in myself.search_queries.order_by('searched_at')[excess]:
                query.delete()
        
        return render_to_response('recruiters/resumesearch.htm', { 'myself':myself,
                                })
Esempio n. 4
0
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.getLoggedInRecruiter(request)
    if not myself:
        return HttpResponseRedirect('/login.htm')
    
    community = models.Community.objects.select_related().get(id=comm_id)    
    members = community.members.all().order_by('-last_update_time')[:12]
    return render_to_response('communities/recruitersshow.htm',
            { 'myself': myself,
                'community': community,
                'community_info_html': getCommunityInfoHtml(community),
                'member_list_html':getMemberThumbnailsHtml(members),
            })
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 })
def handle(request):
    myself = siteaction.getLoggedInRecruiter(request)
    if not myself:
        return HttpResponseRedirect('/login.htm')
    
    if request.method == 'GET':
        #no one should be doing a GET to this page!!
        return HttpResponseRedirect('/login.htm')
        
    elif request.method == 'POST':
        query = extractQueryFromRequest(myself, request)        
        resetRecentQueries(myself, query)        
            
        #we have a valid user. need to update the mru_data
        mru_data = models.RecruiterMRUData.objects.get(recruiter__id=myself.id)
  
        return render_to_response('recruiters/searchresults.htm',
                                  { 'myself' : myself, 
                                    'matching_users' : getMatchingUsers()})
Esempio n. 8
0
def handle(request):
    myself = siteaction.getLoggedInRecruiter(request)
    if not myself:
        return HttpResponseRedirect('/login.htm')
    
    if request.method == 'GET':
        #we have a valid user. need to update the mru_data
        mru_data = models.RecruiterMRUData.objects.get(recruiter__id=myself.id)     
            
        #get number of messages
        new_msgs_count = models.Message.objects.filter(account__id=myself.account.id, folder='inbox', 
            sent_at__gte=mru_data.last_accessed_time).count()
  
        return render_to_response('recruiters/index.htm',
                                  { 'saved_resumes_html': getSavedResumesHtml(),
                                    'recent_tags_html': getRecentTagsHtml(),
                                    'posted_jobs_box_html' : getPostedJobsHtml(myself),
                                    'recent_search_queries_box_html' : getRecentSearchQueriesHtml(myself),
                                    'industry_categories_html' : getIndustryCategoriesHtml(mru_data),
                                    'message_box_html': getMessageBoxHtml(myself),
                                    'new_msgs_count': str(new_msgs_count),
                                    'myself' : myself })
Esempio n. 9
0
def handle(request):  
    account = siteaction.getLoggedInAccount(request)
    if not account:
        return HttpResponseRedirect('/login.htm')
    
    #TODO: notify user about success, success_page will change
    logged_in_type = siteaction.getLoggedInAccountType(request)
    if logged_in_type == 'U':
        entry_page = 'me/changeemail.htm'
        success_page = '/me/editsettings.htm?flashId=email_chnged'
        error_page = 'me/showmessage.htm'
        myself = siteaction.getLoggedInUser(request)
    elif logged_in_type == 'R':
        entry_page = 'recruiters/changeemail.htm'    
        success_page = '/recruiters/'
        error_page = 'recruiters/showmessage.htm'
        myself = siteaction.getLoggedInRecruiter(request)
    
    if request.method == 'GET':
        return siteaction.render_to_response(entry_page, {'myself':myself})

    elif request.method == 'POST':
        #Password Check
        if (siteaction.validatePassword(myself.account.id, dataplus.dictGetVal(request.REQUEST, 'password'))):
            
            result, errMsg = codejar_validation.validateEmail(dataplus.dictGetVal(request.REQUEST,'email'))
            if not result:
                return siteaction.render_to_response(error_page, {'myself':myself, 'msg_heading':'Error', 'msg_html':'Invalid user input.'})
            
            email_address = dataplus.dictGetSafeVal(request.REQUEST, 'email')
            account.email = email_address
            account.save()
            myself.email = email_address
            myself.save()
            return HttpResponseRedirect(success_page)
        else:
            return siteaction.render_to_response(entry_page, 
                {'error_html': '<p class="error-note">Password was incorrect. Try again.</p>'})
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):
    try:
        logged_in_type = siteaction.getLoggedInAccountType(request)
        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")

        quest_to_user = dataplus.dictGetVal(request.REQUEST, "questToUser")
        question_text = dataplus.dictGetSafeVal(request.REQUEST, "question")

        question = models.ResumeQuestion()
        question.sender = myself.account
        question.receiver = models.User.objects.get(username=quest_to_user)
        question.question = question_text
        question.answer = ""
        question.is_answered = False
        question.is_public = False
        question.sent_at = datetime.datetime.utcnow()
        question.save()

        html_message = (
            myself.name
            + ' wants to know more about your resume and has asked this question, <strong>"'
            + question_text
            + '"</strong><br /><br />You may want to <a href="'
            + config.server_base_url
            + "/me/answerresumequestion.htm?qid="
            + str(question.id)
            + '">Answer this question</a>'
        )

        text_message = (
            myself.name
            + ' wants to know more about your resume and has asked this question, "'
            + question_text
            + '"\r\n\r\nYou can answer this question by visiting this url: '
            + config.server_base_url
            + "/me/answerresumequestion.htm?qid="
            + str(question.id)
        )

        def internalSender(rcvr_accounts):
            mailman.sendToInbox(
                myself.username, rcvr_accounts[0].username, "A question for you!", 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, "A question for you!", html_message, None, None, text_message, reply_to=myself.email
            )

        mailman.sendBySettings([question.receiver.account], internalSender, externalSender, "ResumeQuestion")

        return ajaxian.getSuccessResp("")
    except:
        return ajaxian.getFailureResp("unknown")
Esempio n. 12
0
def handle(request):
    myself = siteaction.getLoggedInRecruiter(request)
    if not myself:
        return HttpResponseRedirect('/login.htm')
    
    if request.method == 'GET':
        #there cannot be get requests to this page.....
        return render_to_response('recruiters/showmessage.htm', 
            {'msg_heading': 'Error',
              'msg_html': 'Invalid URL'})
    
    elif request.method == 'POST':
        if (dataplus.dictGetVal(request.REQUEST,'action') == 'page2'):
            industry_cat = dataplus.dictGetVal(request.REQUEST,'industry_category')
            designations = models.Designation.objects.filter(industry_category__name=industry_cat)
            return render_to_response('recruiters/jobwiz2.htm',
                {'industry_category': dataplus.dictGetVal(request.REQUEST,'industry_category'),
                 'company': dataplus.dictGetVal(request.REQUEST,'company'),
                 'location': dataplus.dictGetVal(request.REQUEST,'location'),
                 'email': dataplus.dictGetVal(request.REQUEST,'email'),
                 'phone': dataplus.dictGetVal(request.REQUEST,'phone'),
                 'designations': designations})

        elif (dataplus.dictGetVal(request.REQUEST,'action') == 'save'):            
            job_pos = models.JobPosition()
            job_pos.posted_by = myself
            job_pos.company_name = dataplus.dictGetVal(request.REQUEST,'company',escapeHtml=True)
                    
            industry_category = models.IndustryCategory.objects.get(name=dataplus.dictGetVal(request.REQUEST,'industry_category'))
            job_pos.industry_category = industry_category
            
            job_pos.designation = dataplus.dictGetVal(request.REQUEST,'designation',escapeHtml=True)
            job_pos.job_description = dataplus.dictGetVal(request.REQUEST,'jobdescription',escapeHtml=True)
            job_pos.num_positions = 1 #one for now.
            job_pos.location = dataplus.dictGetVal(request.REQUEST,'location',escapeHtml=True)
            
            exact_salary = string.atoi(dataplus.dictGetVal(request.REQUEST,'exact_salary'))
            if exact_salary > 0:
                job_pos.min_compensation = exact_salary
                job_pos.max_compensation = exact_salary
            else:            
                #salary in the format 'min_salary-max_salary'
                #this string needs to be split into min and max
                sal = string.split(dataplus.dictGetVal(request.REQUEST,'salary_range'),'-')
                job_pos.min_compensation = string.atoi(sal[0])
                job_pos.max_compensation = string.atoi(sal[1])
            
            job_pos.min_exp_years = dataplus.dictGetVal(request.REQUEST,'min_exp_years')
            job_pos.mandatory_skills = dataplus.dictGetVal(request.REQUEST,'mandatory_skills',escapeHtml=True)
            job_pos.desired_skills = dataplus.dictGetVal(request.REQUEST,'desired_skills',escapeHtml=True)
            job_pos.educational_qualifications = dataplus.dictGetVal(request.REQUEST,'edu_qualifications',escapeHtml=True)
            job_pos.contact_email = dataplus.dictGetVal(request.REQUEST,'email',escapeHtml=True)
            job_pos.contact_phone = dataplus.dictGetVal(request.REQUEST,'phone',escapeHtml=True)
            if dataplus.dictGetVal(request.REQUEST,'title') != '':
                job_pos.title = dataplus.dictGetVal(request.REQUEST,'title',escapeHtml=True)
            else:
                job_pos.title = (job_pos.designation + ' - ' + job_pos.mandatory_skills + ' (' + str(job_pos.min_exp_years) + ' years)')[:30] + '...'
            
            job_pos.save()            

            return render_to_response('showmessage.htm', 
                {'msg_heading': 'Saved Job',
                 'msg_html': 'The Job, Saved. TODO://Change'})