예제 #1
0
 def send_speakers_reminder(self, request, queryset):
     for instance in queryset:
         if instance.acl.count() == 0:
             continue
         email = SessionSpeakersReminderEmail(instance=instance)
         send_task("hipeac.tasks.emails.send_from_template", email.data)
     admin.ModelAdmin.message_user(self, request, "Emails are being sent.")
예제 #2
0
def registration_post_save(sender, instance, created, *args, **kwargs):
    if created:
        event = instance.event
        event.registrations_count = event.registrations.count()
        event.save()

        from hipeac.tools.notifications.events import RegistrationPendingNotificator

        RegistrationPendingNotificator().deleteOne(user_id=instance.user_id,
                                                   event_id=event.id)

        email = (
            "events.registrations.created",
            f"[HiPEAC] Your registration for #{instance.event.hashtag} / {instance.id}",
            "HiPEAC <*****@*****.**>",
            [instance.user.email],
            {
                "event_city": instance.event.city,
                "event_hashtag": instance.event.hashtag,
                "event_name": instance.event.name,
                "registration_id": instance.id,
                "registration_url": instance.get_absolute_url(),
                "visa_requested": instance.visa_requested,
            },
        )
        send_task("hipeac.tasks.emails.send_from_template", email)
예제 #3
0
def open_registration_post_save(sender, instance, created, *args, **kwargs):
    if created:
        event = instance.event
        event.registrations_count = event.registrations.count()
        event.save()

        email = OpenRegistrationCreatedEmail(instance=instance)
        send_task("hipeac.tasks.emails.send_from_template", email.data)
예제 #4
0
 def extract_publications_from_dblp(self, request, queryset):
     for user in queryset:
         send_task("hipeac.tasks.dblp.extract_publications_for_user",
                   (user.id, ))
     admin.ModelAdmin.message_user(
         self, request, "Publication extraction has started, "
         "results from DBLP will be available soon.")
     return True
예제 #5
0
def send_members_welcome(queryset):
    for instance in queryset:
        email = (
            "users.members.welcome" if instance.membership_type == "member"
            else "users.members.non_eu.welcome",
            "Welcome to HiPEAC",
            "HiPEAC <*****@*****.**>",
            [instance.clean_email, "*****@*****.**"],
            {
                "user_name": instance.name,
                "is_registered": True if instance.user else False
            },
        )
        send_task("hipeac.tasks.emails.send_from_template", email)
예제 #6
0
 def send_payment_reminder(self, request, queryset):
     queryset = queryset.exclude(saldo__gte=0)  # check if `registration.saldo` >= 0 (aka `is_paid()`)
     for instance in queryset:
         email = (
             "events.registrations.payment_reminder",
             f"[HiPEAC] Payment reminder #{instance.event.hashtag} / {instance.id}",
             "HiPEAC <*****@*****.**>",
             [instance.user.email],
             {
                 "user_name": instance.user.profile.name,
                 "event_name": instance.event.name,
                 "registration_id": instance.id,
                 "payment_url": instance.get_payment_url(),
                 "invoice_requested": instance.invoice_requested,
             },
         )
         send_task("hipeac.tasks.emails.send_from_template", email)
     admin.ModelAdmin.message_user(self, request, "Emails are being sent.")
예제 #7
0
def send_profile_update_reminders(queryset):
    for instance in queryset:
        profile = instance.profile
        email = (
            "users.profile.update_reminder",
            "Update your HiPEAC profile: affiliation, research interests",
            "HiPEAC <*****@*****.**>",
            [instance.email],
            {
                "username":
                instance.username,
                "user_name":
                profile.name,
                "institution":
                profile.institution.name if profile.institution else "(none)",
                "second_institution":
                profile.second_institution.name
                if profile.second_institution else "(none)",
                "topics":
                profile.get_metadata_display("topics")
                if profile.topics != "" else "(none)",
            },
        )
        send_task("hipeac.tasks.emails.send_from_template", email)
예제 #8
0
def job_post_save(sender, instance, created, *args, **kwargs):
    if created:
        try:
            image_url = instance.institution.images["th"]
        except Exception:
            image_url = None

        email = (
            "recruitment.jobs.created",
            f'HiPEAC Job created: "{instance.title}"',
            "HiPEAC Recruitment <*****@*****.**>",
            [instance.created_by.email],
            {
                "job_url": instance.get_absolute_url(),
                "job_title": instance.title,
                "job_pdf_url": instance.get_pdf_url(),
                "user_name": instance.created_by.profile.name,
                "show_euraxess": instance.add_to_euraxess,
            },
        )
        send_task("hipeac.tasks.emails.send_from_template", email)
        send_task("hipeac.tasks.recruitment.process_keywords", (instance.id,))
        send_task("hipeac.tasks.recruitment.share_in_linkedin", (instance.title, instance.get_status(), image_url))
        send_task("hipeac.tasks.recruitment.tweet", (instance.get_status("twitter"),))
예제 #9
0
def project_post_save(sender, instance, created, *args, **kwargs):
    if instance.image_has_changed():
        send_task("hipeac.tasks.imaging.generate_logo_variants",
                  (instance.image.path, ))
예제 #10
0
def post_save_profile(sender, instance, created, **kwargs):
    if instance.image_has_changed():
        send_task("hipeac.tasks.imaging.generate_avatar_variants", (instance.image.path,))
예제 #11
0
def session_proposal_post_save(sender, instance, created, *args, **kwargs):
    if created:
        email = SessionProposalEmail(instance=instance)
        send_task("hipeac.tasks.emails.send_from_template", email.data)
예제 #12
0
 def handle(self, *args, **options):
     for event in Event.objects.all():
         if event.image:
             send_task("hipeac.tasks.imaging.generate_banner_variants", (event.image.path,))
예제 #13
0
def post_save_link(sender, instance, created, **kwargs):
    if instance.type == Link.DBLP and instance.content_type.model == "profile":
        send_task("hipeac.tasks.dblp.extract_publications_for_user",
                  (instance.object_id, ))
예제 #14
0
 def send_reminder(self, request, queryset):
     for instance in queryset:
         email = RegistrationReminderEmail(instance=instance)
         send_task("hipeac.tasks.emails.send_from_template", email.data)
     admin.ModelAdmin.message_user(self, request, "Emails are being sent.")