예제 #1
0
    def save(self, *args, **kwargs):
        adding = self._state.adding

        super().save(*args, **kwargs)

        if adding:
            self.set_default_interfaces()

        calculate_ranks.apply_async(kwargs={"challenge_pk": self.challenge.pk})
예제 #2
0
def recalculate_ranks(instance: Union[Result, Config] = None, *_, **__):
    """Recalculates the ranking on a new result"""
    try:
        challenge_pk = instance.challenge.pk
    except AttributeError:
        # For a Result
        challenge_pk = instance.job.submission.challenge.pk

    calculate_ranks.apply_async(kwargs={"challenge_pk": challenge_pk})
예제 #3
0
def recalculate_ranks(instance: Union[Result, Config] = None, *_, **__):
    """Recalculates the ranking on a new result"""
    try:
        challenge_pk = instance.challenge.pk
    except AttributeError:
        # For a Result
        challenge_pk = instance.job.submission.challenge.pk

    calculate_ranks.apply_async(kwargs={"challenge_pk": challenge_pk})
예제 #4
0
    def save(self, *args, **kwargs):
        adding = self._state.adding

        super().save(*args, **kwargs)

        if adding:
            self.set_default_interfaces()
            self.assign_permissions()

        calculate_ranks.apply_async(kwargs={"phase_pk": self.pk})
예제 #5
0
    def save(self, *args, **kwargs):
        adding = self._state.adding

        if adding:
            self.published = (
                self.challenge.evaluation_config.auto_publish_new_results)

        super().save(*args, **kwargs)

        calculate_ranks.apply_async(kwargs={"challenge_pk": self.challenge.pk})
예제 #6
0
    def save(self, *args, **kwargs):
        adding = self._state.adding

        if adding:
            self.published = self.submission.phase.auto_publish_new_results

        super().save(*args, **kwargs)

        self.assign_permissions()

        calculate_ranks.apply_async(
            kwargs={"phase_pk": self.submission.phase.pk})
예제 #7
0
    def save(self, *args, **kwargs):
        adding = self._state.adding

        super().save(*args, **kwargs)

        if adding:
            self.set_default_interfaces()
            self.assign_permissions()
            for admin in self.challenge.get_admins():
                if not is_following(admin, self):
                    follow(
                        user=admin,
                        obj=self,
                        actor_only=False,
                        send_action=False,
                    )

        if self.public != self._orig_public:
            on_commit(
                assign_evaluation_permissions.signature(
                    kwargs={"phase_pks": [self.pk]}
                ).apply_async
            )
            on_commit(
                assign_submission_permissions.signature(
                    kwargs={"phase_pk": self.pk}
                ).apply_async
            )

        on_commit(
            lambda: calculate_ranks.apply_async(kwargs={"phase_pk": self.pk})
        )
예제 #8
0
def recalculate_ranks(instance: Union[Result, Config] = None, *_, **__):
    """Recalculates the ranking on a new result"""
    calculate_ranks.apply_async(kwargs={'challenge_pk': instance.challenge.pk})