def new_job_was_created(sender, instance, created, **kwargs): if not created: return # post to telegram message_base = "Nova oportunidade! {} - {} em {}\n {}/job/{}/" message_text = message_base.format( instance.title, instance.company_name, instance.workplace, settings.WEBSITE_HOME_URL, instance.pk, ) post_telegram_channel(message_text) msg = get_email_with_template( "published_job", {"vaga": instance}, "Sua oportunidade está disponível no {}".format(settings.WEBSITE_NAME), [instance.company_email], ) msg.send() try: send_offer_email_template(instance) except: client.captureException()
def handle(self, *args, **options): job_qs = Job.objects.filter(is_challenging=True) for job in job_qs: job_applications = JobApplication.objects.filter( job=job, challenge_response_at=None, email_sent_at__gte=datetime.now() - timedelta(days=4), email_sent_at__lte=datetime.now() + timedelta(days=3), challenge_resent=False, ) for job_app in job_applications: print(job_app) person_email_context = { "vaga": job, "pessoa": job_app.user.profile, "mensagem": job_app, } template_person = "job_interest_challenge" person_email_subject = "Reenviando: Teste Técnico da empresa: {}!".format( job.company_name) job_app.challenge_resent = True job_app.save() msg_email_person = get_email_with_template( template_person, person_email_context, person_email_subject, (job_app.user.email, ), ) msg_email_person.send()
def send_challenge_to_old_applicants(modeladmin, request, queryset): available_jobs = [job for job in queryset if job.is_challenging] emails_to_be_sent = [] for job in available_jobs: job_applicantions = JobApplication.objects.filter(job=job, email_sent=False) for job_applicant in job_applicantions: email_context = { "vaga": job, "pessoa": job_applicant.user.profile, "mensagem": job_applicant, } message = get_email_with_template( "job_interest_challenge", email_context, "Teste Técnico da empresa: {}!".format(job.company_name), [job_applicant.user.email], ) message.send() job_applicant.email_sent = True job_applicant.email_sent_at = datetime.now() job_applicant.save()
def feedback_was_created(sender, instance, **kwargs): if not instance.id: return original_application = JobApplication.objects.get(id=instance.id) if original_application.company_feedback != instance.company_feedback: msg = get_email_with_template( "job_application_feedback", { "pessoa": instance.user, "vaga": instance.job, "job_application": instance, }, " ".join( map( str, [ _("Você recebeu um feedback da vaga"), instance.job.title, _("na empresa"), instance.job.company_name, ], )), [instance.user.email], ) msg.send()
def share_to_new_buddy(sender, instance, created, **kwargs): email_context = {"pessoa": instance.user_sharing, "vaga": instance.job} msg = get_email_with_template( "job_sharing", email_context, _("Indicacao de vaga"), [instance.user_receiving_email], ) msg.send()
def test(sender, instance, created, **kwargs): if not created or not instance.receive_emails: return False message_text = " ".join( map( str, [ _("Nova oportunidade!"), instance.title, " - ", instance.company_name, _("em"), instance.workplace, "\n", f"{settings.WEBSITE_HOME_URL}/job/{instance.pk}/", ], )) post_telegram_channel(message_text) msg = get_email_with_template( "published_job", {"vaga": instance}, " ".join( map(str, [ _("Sua oportunidade está disponível no"), settings.WEBSITE_NAME ])), [instance.company_email], ) payload = { "head": " ".join(map(str, [_("Nova Vaga!"), instance.title])), "body": instance.description, "url": f"{settings.WEBSITE_HOME_URL}/job/{instance.pk}/", } msg.send() if not instance.issue_number: try: send_job_to_github_issues(instance) except: pass try: send_group_notification(group_name="general", payload=payload, ttl=1000) except: pass try: send_offer_email_template(instance) except: client.captureException() return True
def send_email_notifing_job_application(sender, instance, created, **kwargs): if not created: return person_email_context = { "vaga": instance.job, "pessoa": instance.user.profile, "mensagem": instance, } company_email_context = person_email_context template_person = "job_application_registered" person_email_subject = _("Parabéns! Você se inscreveu na vaga!") person_to_send_to = [instance.user.email] if instance.job.is_challenging: template_person = "job_interest_challenge" person_email_subject = " ".join( map(str, [ _("Teste Técnico da empresa: "), instance.job.company_name, "!" ])) instance.email_sent = True instance.email_sent_at = datetime.now() instance.save() msg_email_person = get_email_with_template(template_person, person_email_context, person_email_subject, person_to_send_to) msg_email_person.send() if instance.job.receive_emails: msg_email_company = get_email_with_template( "job_applicant", company_email_context, _("Você possui mais um candidato para a sua vaga"), [instance.job.company_email], ) msg_email_company.send()
def new_job_challenge_answered(sender, instance, created, **kwargs): subject = "Novo teste a ser avaliado: {}".format(instance.job.title) email_context = {"vaga": instance.job, "mensagem": instance} if (not created and instance.job.is_challenging and instance.challenge_response_link != None): msg = get_email_with_template( "new_answer_to_check", email_context, subject, [settings.WEBSITE_OWNER_EMAIL], ) msg.send()
def send_email_notifing_job_application(sender, instance, created, **kwargs): if not created: return person_email_context = { "vaga": instance.job, "pessoa": instance.user.profile, "mensagem": instance, } company_email_context = person_email_context template_person = "job_application_registered" person_email_subject = "Parabéns! Você se inscreveu na vaga!" person_to_send_to = [instance.user.email] if instance.job.is_challenging: template_person = "job_interest_challenge" person_email_subject = "Teste Técnico da empresa: {}!".format( instance.job.company_name) instance.email_sent = True instance.email_sent_at = datetime.now() instance.save() person_to_send_to.append(settings.WEBSITE_OWNER_EMAIL) person_to_send_to.append(instance.job.company_email) msg_email_person = get_email_with_template(template_person, person_email_context, person_email_subject, person_to_send_to) msg_email_person.send() msg_email_company = get_email_with_template( "job_applicant", company_email_context, "Você possui mais um candidato para a sua vaga", [instance.job.company_email], ) msg_email_company.send()
def send_email_notifing_job_application(sender, instance, created, **kwargs): person_email_context = { "vaga": instance.job, "pessoa": instance.user.profile } company_email_context = person_email_context msg_email_person = get_email_with_template( "job_application_registered", person_email_context, "Parabéns! Você se inscreveu na vaga!", [instance.user.email], ) msg_email_person.send() msg_email_company = get_email_with_template( "job_applicant", company_email_context, "Você possui mais um candidato para a sua vaga", [instance.job.company_email], ) msg_email_company.send()
def new_job_was_created(sender, instance, created, **kwargs): if not created or not instance.receive_emails: return # post to telegram message_base = "Nova oportunidade! {} - {} em {}\n {}/job/{}/" message_text = message_base.format( instance.title, instance.company_name, instance.workplace, settings.WEBSITE_HOME_URL, instance.pk, ) post_telegram_channel(message_text) msg = get_email_with_template( "published_job", {"vaga": instance}, "Sua oportunidade está disponível no {}".format(settings.WEBSITE_NAME), [instance.company_email], ) payload = { "head": f"Nova Vaga! {instance.title}", "body": instance.description, "url": f"{settings.WEBSITE_HOME_URL}/job/{instance.pk}/", } msg.send() if not instance.issue_number: try: send_job_to_github_issues(instance) except: pass try: send_group_notification(group_name="general", payload=payload, ttl=1000) except: pass try: send_offer_email_template(instance) except: client.captureException()
def new_contact(sender, instance, created, **kwargs): email_context = {"mensagem": instance} msg = get_email_with_template("new_contact", email_context, instance.subject, [settings.WEBSITE_OWNER_EMAIL]) msg.send()