コード例 #1
0
def handle(request):
    filter_id = dataplus.dictGetSafeVal(request.REQUEST, 'filterId', '')
    if filter_id:
        resume_filter = get_object_or_404(models.RecruiterSubscription,
                                          id=filter_id)
        results = search_helper.matchResumes(resume_filter.keywords,
                                             resume_filter.experience,
                                             resume_filter.location,
                                             resume_filter.max_salary,
                                             resume_filter.added_on,
                                             datetime.datetime.utcnow())
        return HttpResponse(
            str(resume_filter) + ': Results(' + str(results) + ')')

    else:
        html = ''
        filters = models.RecruiterSubscription.objects.all()
        for resume_filter in filters:
            response = search_helper.matchResumes(
                resume_filter.keywords, resume_filter.experience,
                resume_filter.location, resume_filter.max_salary,
                resume_filter.added_on, datetime.datetime(1980, 10, 3))
            html += 'Results(' + str(
                [result[id] for result in response.results]) + ')<br />'
        return HttpResponse(html)
コード例 #2
0
ファイル: sys_searchresumes.py プロジェクト: jeswin/JobHunt
def handle(request):
    filter_id = dataplus.dictGetSafeVal(request.REQUEST, 'filterId', '')
    if filter_id:
        resume_filter = get_object_or_404(models.RecruiterSubscription, id=filter_id)
        results = search_helper.matchResumes(resume_filter.keywords, resume_filter.experience, resume_filter.location, resume_filter.max_salary, resume_filter.added_on, datetime.datetime.utcnow())
        return HttpResponse(str(resume_filter) + ': Results(' + str(results) + ')')

    else:
        html = ''
        filters = models.RecruiterSubscription.objects.all()
        for resume_filter in filters:
            response = search_helper.matchResumes(resume_filter.keywords, resume_filter.experience, resume_filter.location, resume_filter.max_salary, resume_filter.added_on, datetime.datetime(1980,10,3))
            html += 'Results(' + str([result[id] for result in response.results]) + ')<br />'
        return HttpResponse(html)
コード例 #3
0
ファイル: sys_recinvite.py プロジェクト: panyang/JobHunt
def handle(request):
    if not request.user.is_authenticated(): return HttpResponseRedirect('/admin/')
    
    if request.method == 'GET':
        return codejar.actions.render(request, 'sys/recinvite.htm')
    
    elif request.method == 'POST':
        rec_emails = dataplus.dictGetSafeVal(request.REQUEST, 'emails', '')
        keywords = dataplus.dictGetSafeVal(request.REQUEST, 'keywords', '')
        experience = dataplus.dictGetVal(request.REQUEST, 'experience', 0, string.atoi)
        location = dataplus.dictGetSafeVal(request.REQUEST, 'location', '')
        key = dataplus.dictGetSafeVal(request.REQUEST, 'key', '')
        if rec_emails:
            min_datetime = datetime.datetime(1980, 10, 3)   #min_date
            response = search_helper.matchResumes(keywords, experience, location, 99999999, min_datetime)
            usr_list = response.results
            usr_list.sort(lambda x,y: x['rating']-y['rating'])
            usr_list = addFormatting(usr_list[:50])
            
            for email in rec_emails.split(','):
                token_value = models.Token.getNew('system', email, 'Invites')
                sel_users = getRandomUsers(usr_list)
                for usr in sel_users:
                    notifications.addNotification(usr['id'], 'ProfEmailed', data={'recruiter_email':email})
                mailer.sendAdminRecruiterInvites(email, {'token':token_value, 'key':key, 'matching_users':sel_users})
        
        return HttpResponseRedirect('/sys/recinvite.htm?flashId=recruiters_invited')
コード例 #4
0
def handle(request):
    rec, redirect = codejar.actions.handleSecurity(request, 'recruiter')
    if not rec: return redirect
    
    email_list = dataplus.dictGetSafeVal(request.REQUEST, 'email_list', '')
    email_query = dataplus.dictGetSafeVal(request.REQUEST, 'email_query', '')
    if email_query:
        search_keywords, experience, location, max_salary = cPickle.loads(base64.b64decode(email_query))
        response = search_helper.matchResumes(search_keywords, experience, location, max_salary, datetime.datetime(1981, 1, 9))
        email_list = dataplus.decode(string.join([usr['email'] for usr in response.results], '; '))
    
    action = dataplus.dictGetSafeVal(request.REQUEST, 'action', '')
    if action == 'show_form':
        return codejar.actions.render(request, 'recruiters/emailusers.htm',
                               {'to_list':email_list,
                                'recruiter': rec})
    
    elif action == 'email_users':
        subject = dataplus.dictGetSafeVal(request.REQUEST, 'subject', '')
        message = dataplus.dictGetSafeVal(request.REQUEST, 'message', '')
        
        message += '<p>&nbsp;</p><div style="border-bottom: 1px solid rgb(153, 153, 153);"></div><p>This email has been sent by %s(%s) of %s using <a href="http://www.jobhunt.in">www.jobhunt.in</a> services.</p>' % (rec.name, rec.email, rec.organization)
        mailman.sendMail(rec.name + '<*****@*****.**>', email_list.split(';'), subject, message, reply_to=rec.email)
        
        eventnotifier.sendEventNotification("New Recruiter Mass Mail: " + subject + " - " + rec.name + "(" + rec.email + ")" + " message:\n" + message)
        
        return HttpResponseRedirect('dashboard.htm?flashId=email_sent')
コード例 #5
0
ファイル: recruiter_mail_job.py プロジェクト: jeswin/JobHunt
def sendSubscriptionResults(subscription, rec_id, rec_key, rec_email, from_job=False):
    #try:
        print rec_email

        response = search_helper.matchResumes(subscription.keywords, subscription.experience, subscription.location, subscription.max_salary, subscription.results_last_sent_on)
        if string.atoi(response.numFound) >= subscription.min_count:
            sendMailToRecruiter(response.results, subscription, rec_email, rec_key)
            logSentUsers(response.results, rec_email, subscription.id)
        if not from_job:    connection.commit()
コード例 #6
0
def handle(request):
    rec, redirect = codejar.actions.handleSecurity(request, 'recruiter')
    if not rec:	return redirect

    page = dataplus.dictGetVal(request.REQUEST, 'page', 0, string.atoi)
    subscr_id = dataplus.dictGetVal(request.REQUEST, 'sub_id', 0, string.atoi)
    keywords = dataplus.dictGetSafeVal(request.REQUEST, 'keywords', '')
    search_tuple = dataplus.dictGetSafeVal(request.REQUEST, 'searchTuple', '')
    search_dict = {}
    min_datetime = datetime.datetime(1981, 1, 9)    #Jes B'day
    response = None
    search_desc = ''
    if subscr_id:    
        subscr = dataplus.returnIfExists(models.RecruiterSubscription.objects.filter( id=subscr_id))
        if not (subscr and subscr.recruiter == rec):	raise Http404
        search_dict = {'keywords':subscr.keywords, 'experience':subscr.experience, 'location':subscr.location,
                       'max_salary':subscr.max_salary, 'limit_time':subscr.results_last_sent_on}
    elif keywords:
        experience = dataplus.dictGetVal(request.REQUEST, 'experience', 0, string.atoi)
        location = dataplus.dictGetSafeVal(request.REQUEST, 'location', 'Any')
        max_salary = dataplus.dictGetVal(request.REQUEST, 'maxSalary', 0, string.atoi)
        search_tuple = base64.b64encode(cPickle.dumps((keywords, experience, location, max_salary)))
        search_dict = {'keywords':keywords.strip('\r'), 'experience':experience, 'location':location.strip('\r'),
                       'max_salary':max_salary, 'limit_time':min_datetime}
        models.RecruiterData.addToRecentSearches(rec, search_dict)
    elif search_tuple:
        search_keywords, experience, location, max_salary = cPickle.loads(base64.b64decode(search_tuple))
        search_dict = {'keywords':search_keywords, 'experience':experience, 'location':location,
                       'max_salary':max_salary, 'limit_time':min_datetime}
    else:
        raise Http404
    
    response = search_helper.matchResumes(search_dict['keywords'], search_dict['experience'], search_dict['location'], search_dict['max_salary'], search_dict['limit_time'], start=page * page_size, rows=page_size)
    user_list = response.results
    num_pages = 0
    if (len(user_list) > 0):
    	num_pages = ((string.atoi(response.numFound )-1) / page_size) + 1
    
    return codejar.actions.render(request, 'recruiters/searchresults.htm', {'subscription_id':subscr_id,
                              'search_tuple': search_tuple,
                              'search_url': urllib.urlencode(search_dict),
                              'users': addFormatting(user_list, page),
                              'search_desc': getSearchDisplay(search_dict),
                              'links_html': getLinksHtml(num_pages, page, user_list),
                              'num_results':response.numFound,
                              'date':datetime.datetime.utcnow().strftime('%B %e, %Y')
                              })
コード例 #7
0
ファイル: recruiter_mail_job.py プロジェクト: panyang/JobHunt
def sendSubscriptionResults(subscription,
                            rec_id,
                            rec_key,
                            rec_email,
                            from_job=False):
    #try:
    print rec_email

    response = search_helper.matchResumes(subscription.keywords,
                                          subscription.experience,
                                          subscription.location,
                                          subscription.max_salary,
                                          subscription.results_last_sent_on)
    if string.atoi(response.numFound) >= subscription.min_count:
        sendMailToRecruiter(response.results, subscription, rec_email, rec_key)
        logSentUsers(response.results, rec_email, subscription.id)
    if not from_job: connection.commit()
コード例 #8
0
def handle(request):
    rec, redirect = codejar.actions.handleSecurity(request, 'recruiter')
    if not rec: return redirect

    email_list = dataplus.dictGetSafeVal(request.REQUEST, 'email_list', '')
    email_query = dataplus.dictGetSafeVal(request.REQUEST, 'email_query', '')
    if email_query:
        search_keywords, experience, location, max_salary = cPickle.loads(
            base64.b64decode(email_query))
        response = search_helper.matchResumes(search_keywords, experience,
                                              location, max_salary,
                                              datetime.datetime(1981, 1, 9))
        email_list = dataplus.decode(
            string.join([usr['email'] for usr in response.results], '; '))

    action = dataplus.dictGetSafeVal(request.REQUEST, 'action', '')
    if action == 'show_form':
        return codejar.actions.render(request, 'recruiters/emailusers.htm', {
            'to_list': email_list,
            'recruiter': rec
        })

    elif action == 'email_users':
        subject = dataplus.dictGetSafeVal(request.REQUEST, 'subject', '')
        message = dataplus.dictGetSafeVal(request.REQUEST, 'message', '')

        message += '<p>&nbsp;</p><div style="border-bottom: 1px solid rgb(153, 153, 153);"></div><p>This email has been sent by %s(%s) of %s using <a href="http://www.jobhunt.in">www.jobhunt.in</a> services.</p>' % (
            rec.name, rec.email, rec.organization)
        mailman.sendMail(rec.name + '<*****@*****.**>',
                         email_list.split(';'),
                         subject,
                         message,
                         reply_to=rec.email)

        eventnotifier.sendEventNotification("New Recruiter Mass Mail: " +
                                            subject + " - " + rec.name + "(" +
                                            rec.email + ")" + " message:\n" +
                                            message)

        return HttpResponseRedirect('dashboard.htm?flashId=email_sent')