示例#1
0
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')
def mailUsers():
    #get the data from PostgreSql
    stmt = """SELECT R.id, key, name, organization, email, T.value AS token_value
        FROM website_recruiter AS R INNER JOIN website_token AS T ON T.owner = R.email
        INNER JOIN website_account AS A ON R.account_id = A.id WHERE A.account_state = 'I' AND A.email_verified = TRUE"""
    cursor.execute(stmt)
    results = cursor.fetchall()

    min_datetime = datetime.datetime(1980, 10, 3)  #min_date
    mailing_list = getMailingList()
    for row in results:
        rec = RecInfo(row)

        for (subject, usr_list) in mailing_list:
            print(
                'sending email to ' + rec.email +
                'invite link http://jobhunt.in/recruiters/dashboard.htm?rec_token='
                + rec.token_value)
            mailer.sendAdminRecruiterInvites(
                rec.email, {
                    'token': rec.token_value,
                    'key': rec.key,
                    'matching_users': usr_list,
                    'header': subject
                }, subject)
            for usr in usr_list:
                notifications.addNotification(usr['id'],
                                              'ProfEmailed',
                                              data={
                                                  'recruiter_id': rec.id,
                                                  'recruiter_email': rec.email
                                              })
            notifications.addNotification(
                rec.email, 'PropResults',
                ','.join([str(usr['id']) for usr in usr_list]))
示例#3
0
def logSentUsers(users, rec_email, subscription_id):
    user_ids = [user['id'] for user in users]
    for user_id in user_ids:
        notifications.addNotification(user_id, 'ProfEmailed', data={'recruiter_email':rec_email, 'subscription_id':subscription_id})
    notifications.addNotification(rec_email, 'SubResults', ','.join(map(str, user_ids)))
    stmt = 'UPDATE website_recruitersubscription SET results_last_sent_on = %(job_start_time)s;'
    cursor.execute(stmt, {'job_start_time':job_start_time})
示例#4
0
def logSentUsers(users, rec_email, subscription_id):
    user_ids = [user['id'] for user in users]
    for user_id in user_ids:
        notifications.addNotification(user_id,
                                      'ProfEmailed',
                                      data={
                                          'recruiter_email': rec_email,
                                          'subscription_id': subscription_id
                                      })
    notifications.addNotification(rec_email, 'SubResults',
                                  ','.join(map(str, user_ids)))
    stmt = 'UPDATE website_recruitersubscription SET results_last_sent_on = %(job_start_time)s;'
    cursor.execute(stmt, {'job_start_time': job_start_time})
def handle(request):
    try:
        rec = codejar.auth.getLoggedInRecruiter(request)
        if rec:
            user_key = dataplus.dictGetSafeVal(request.REQUEST, 'key', '')
            user = dataplus.returnIfExists(models.User.objects.filter(key=user_key))
            
            notifications.addNotification(user.id, 'ResumeRequest', data={'recruiter_id':rec.id})
            return codejar.ajaxian.getSuccessResp('')
        else:
            return codejar.ajaxian.getFailureResp('not_logged_in')
    except:
        return codejar.ajaxian.getFailureResp('')
示例#6
0
def handle(request, account_type='user'):
    rec = None
    if account_type == 'user':
        user, redirect = codejar.actions.handleSecurity(request, 'user')
        if not user: return redirect
    elif account_type == 'recruiter':
        rec, redirect = codejar.actions.handleSecurity(request, 'recruiter')
        if not rec: return redirect
        user_key = dataplus.dictGetSafeVal(request.REQUEST, 'key', '')
        user = dataplus.returnIfExists(
            models.User.objects.filter(key=user_key))
        if not user:
            return codejar.actions.render(
                request, 'error.htm', {
                    'error_message':
                    'You have entered an invalid Url. Please check and try again.'
                })

    if request.method == 'GET':
        pref_summary = ''
        #12 Lakhs, Large Companies only, in Bangalore.
        if user.pref_designation and user.min_salary and user.pref_location and user.pref_employment:
            pref_summary = '%s in %s' % (user.pref_designation,
                                         html_options.getVerboseEmploymentType(
                                             user.pref_employment))
            if not user.pref_location == 'Anywhere':
                pref_summary += ', in ' + user.pref_location

        user.job_preferences = pref_summary
        if user.summary:
            user.summary_display = '<ul>\n' + reduce(
                lambda x, y: x + '<li>' + y + '</li>\n',
                user.summary.split('\n'), '') + '</ul>\n'

        user.min_salary_in_lakhs = user.min_salary / 100000

        if rec:
            sub_id = dataplus.dictGetVal(request.REQUEST, 'sub_id', 0,
                                         string.atoi)
            notifications.addNotification(str(user.id),
                                          'ProfViewed',
                                          data={
                                              'recruiter_id': rec.id,
                                              'subscription_id': sub_id
                                          })
        return codejar.actions.render(request, 'viewsummary.htm', {
            'user': user,
            'rec': rec
        })
    elif request.method == 'POST':
        pass
示例#7
0
def handle(request, format, user_key):
    rec, redirect = codejar.actions.handleSecurity(request, 'recruiter')
    if not rec:
        rec_key = dataplus.dictGetSafeVal(request.REQUEST, 'key', '')
        if rec_key: rec = dataplus.returnIfExists(models.Recruiter.object.filter(key=rec_key))        
    if not rec: return redirect
    
    user = get_object_or_404(models.User, key=user_key)    
    if not format in ('doc', 'html'): 
		format = 'doc'
    
    sub_id = dataplus.dictGetVal(request.REQUEST, 'sub_id', 0)
    notifications.addNotification(str(user.id), 'ProfViewed', data={'recruiter_id': rec.id, 'subscription_id':sub_id})
    
    return codejar.user.downloadResume(user, format)
示例#8
0
def handle(request):
    try:
        rec = codejar.auth.getLoggedInRecruiter(request)
        if rec:
            user_key = dataplus.dictGetSafeVal(request.REQUEST, 'key', '')
            user = dataplus.returnIfExists(
                models.User.objects.filter(key=user_key))

            notifications.addNotification(user.id,
                                          'ResumeRequest',
                                          data={'recruiter_id': rec.id})
            return codejar.ajaxian.getSuccessResp('')
        else:
            return codejar.ajaxian.getFailureResp('not_logged_in')
    except:
        return codejar.ajaxian.getFailureResp('')
示例#9
0
def handle(request, account_type="user"):
    rec = None
    if account_type == "user":
        user, redirect = codejar.actions.handleSecurity(request, "user")
        if not user:
            return redirect
    elif account_type == "recruiter":
        rec, redirect = codejar.actions.handleSecurity(request, "recruiter")
        if not rec:
            return redirect
        user_key = dataplus.dictGetSafeVal(request.REQUEST, "key", "")
        user = dataplus.returnIfExists(models.User.objects.filter(key=user_key))
        if not user:
            return codejar.actions.render(
                request, "error.htm", {"error_message": "You have entered an invalid Url. Please check and try again."}
            )

    if request.method == "GET":
        pref_summary = ""
        # 12 Lakhs, Large Companies only, in Bangalore.
        if user.pref_designation and user.min_salary and user.pref_location and user.pref_employment:
            pref_summary = "%s in %s" % (
                user.pref_designation,
                html_options.getVerboseEmploymentType(user.pref_employment),
            )
            if not user.pref_location == "Anywhere":
                pref_summary += ", in " + user.pref_location

        user.job_preferences = pref_summary
        if user.summary:
            user.summary_display = (
                "<ul>\n" + reduce(lambda x, y: x + "<li>" + y + "</li>\n", user.summary.split("\n"), "") + "</ul>\n"
            )

        user.min_salary_in_lakhs = user.min_salary / 100000

        if rec:
            sub_id = dataplus.dictGetVal(request.REQUEST, "sub_id", 0, string.atoi)
            notifications.addNotification(
                str(user.id), "ProfViewed", data={"recruiter_id": rec.id, "subscription_id": sub_id}
            )
        return codejar.actions.render(request, "viewsummary.htm", {"user": user, "rec": rec})
    elif request.method == "POST":
        pass
示例#10
0
def mailUsers():
    #get the data from PostgreSql
    stmt = """SELECT R.id, key, name, organization, email, T.value AS token_value
        FROM website_recruiter AS R INNER JOIN website_token AS T ON T.owner = R.email
        INNER JOIN website_account AS A ON R.account_id = A.id WHERE A.account_state = 'I' AND A.email_verified = TRUE"""
    cursor.execute(stmt)
    results = cursor.fetchall()

    min_datetime = datetime.datetime(1980, 10, 3)   #min_date
    mailing_list = getMailingList()
    for row in results:
        rec = RecInfo(row)
        
        for (subject, usr_list) in mailing_list:
            print('sending email to ' + rec.email + 'invite link http://jobhunt.in/recruiters/dashboard.htm?rec_token=' + rec.token_value)
            mailer.sendAdminRecruiterInvites(rec.email, {'token':rec.token_value, 'key':rec.key, 'matching_users':usr_list, 'header':subject}, subject)
            for usr in usr_list:
                notifications.addNotification(usr['id'], 'ProfEmailed', data={'recruiter_id':rec.id, 'recruiter_email':rec.email})
            notifications.addNotification(rec.email, 'PropResults', ','.join([str(usr['id']) for usr in usr_list]))
示例#11
0
def handle(request, user_key):

	if request.method == 'GET':
		rec, redirect = codejar.actions.handleSecurity(request, 'recruiter')
		if not rec:
			rec_key = dataplus.dictGetSafeVal(request.REQUEST, 'key', '')
			if rec_key: rec = dataplus.returnIfExists(models.Recruiter.object.filter(key=rec_key))
			if not rec: return redirect

		user = get_object_or_404(models.User, key=user_key)

		sub_id = dataplus.dictGetVal(request.REQUEST, 'sub_id', 0)
		notifications.addNotification(str(user.id), 'ProfViewed', data={'recruiter_id': rec.id, 'subscription_id':sub_id})

		return codejar.user.downloadResume(user, 'doc')

	else:
		#this shouldnt be happening
		return HttpResponseRedirect('/')
示例#12
0
def logSentReport(user_id, context):
    notifications.addNotification(user_id, 'UserReport', data=context)
示例#13
0
def logSentReport(user_id, context):
    notifications.addNotification(user_id, 'UserReport', data=context)