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]))
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 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('')
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
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)
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('')
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
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]))
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('/')
def logSentReport(user_id, context): notifications.addNotification(user_id, 'UserReport', data=context)