Ejemplo n.º 1
0
    def accept(self):
        # A Trade needs to be marked as completed before adding and removing of JobUsers since we don't want
        # to delete completed trades. (The deletion function in signals.py won't delete completed Trades.)
        self.completed = True
        self.save()

        # These need to be created before adding and removing JobUsers since the signal-listeners
        # will start removing them right away.
        receiver_gets = self.sent.all()
        sender_gets = self.requested.all()

        # We need to create new instances instead of updating the old ones in order to
        # trigger the signal for removing all other trades concerning these job-user combinations.
        for job in receiver_gets:
            JobUser.create(job=job, user=self.receiver)
            JobUser.remove(job=job, user=self.sender)
        for job in sender_gets:
            JobUser.create(job=job, user=self.sender)
            JobUser.remove(job=job, user=self.receiver)

        notify_user(self.sender,
                    template="trade_accepted",
                    template_context=dict(receiver=self.receiver))

        notify_group("JobSwapNotifications",
                     template="admin_jobs_traded",
                     template_context=dict(
                         sender=self.sender,
                         receiver=self.receiver,
                         receiver_gets=receiver_gets,
                         sender_gets=sender_gets,
                     ))
Ejemplo n.º 2
0
    def apply(self):
        JobUser.create(self.job, self.user)
        self.delete()
        self.job.save()

        notify_user(self.user,
                    template="job_enterqueue",
                    template_context=dict(job=self.job, user=self.user))
Ejemplo n.º 3
0
def post_registration(sender, instance: JobUser, created, **kwargs):
    if not created:
        return

    log = ActionLog(job=instance.job,
                    user=instance.user,
                    type=ActionLog.TYPES.REGISTRATION_CREATE.value)
    log.save()

    notify_user(instance.user,
                template="job_registration",
                template_context=dict(job=instance.job, user=instance.user))

    instance.user.update_points()
    accounts.utils.update_user_placings()

    _delete_trades(instance)
    _delete_EQ(instance)
Ejemplo n.º 4
0
def notify_jobs_tomorrow(num):
    tomorrow = (timezone.now() + timedelta(days=1)).date().isoformat()

    jobs = Job.objects.filter(start_date=tomorrow).all()

    user_jobs = {}

    for job in jobs:
        for user in job.users.all():
            job_user = job.jobuser_set.get(user=user)
            if user in user_jobs:
                user_jobs.get(user).append((job, job_user))
            else:
                user_jobs[user] = [(job, job_user)]

    for user, vals in user_jobs.items():
        notify_user(user,
                    template="job_reminder",
                    template_context=dict(
                        user=user,
                        jobs=[v[0] for v in vals],
                    ))
Ejemplo n.º 5
0
def notify_registered(request, jobs, message):
    user_jobs = {}

    for job in jobs:
        for user in job.users.all():
            if user in user_jobs:
                user_jobs.get(user).append(job.name)
            else:
                user_jobs[user] = [job.name]

    for user, registered_jobs in user_jobs.items():
        notify_user(user,
                    template="job_notification",
                    template_context=dict(
                        jobs=registered_jobs,
                        user=user,
                        admin=request.user,
                        message=message,
                    ))

    job_names = ", ".join([job.name for job in jobs])
    messages.add_message(request, messages.INFO,
                         "Notified users registered to jobs %s." % job_names)
Ejemplo n.º 6
0
    def deny(self):
        self.delete()

        notify_user(self.sender,
                    template="trade_denied",
                    template_context=dict(receiver=self.receiver))
Ejemplo n.º 7
0
 def notify_receiver(self):
     notify_user(self.receiver,
                 template="trade_received",
                 template_context=dict(sender=self.sender,
                                       trade_url=self.url()))