コード例 #1
0
    def process_finished_pickup_dates(self):
        """
        find all pickup dates that are in the past and didn't get processed yet
        add them to history and mark as processed
        """
        for pickup in self.exclude_disabled().filter(
                feedback_possible=False,
                date__lt=timezone.now(),
        ):
            if not pickup.store.is_active():
                # Make sure we don't process this pickup again, even if the store gets active in future
                pickup.is_disabled = True
                pickup.save()
                continue

            payload = {}
            payload['pickup_date'] = pickup.id
            if pickup.series:
                payload['series'] = pickup.series.id
            if pickup.max_collectors:
                payload['max_collectors'] = pickup.max_collectors
            if pickup.collectors.count() == 0:
                stats.pickup_missed(pickup)
                History.objects.create(
                    typus=HistoryTypus.PICKUP_MISSED,
                    group=pickup.store.group,
                    store=pickup.store,
                    date=pickup.date,
                    payload=payload,
                )
            else:
                stats.pickup_done(pickup)
                History.objects.create(
                    typus=HistoryTypus.PICKUP_DONE,
                    group=pickup.store.group,
                    store=pickup.store,
                    users=pickup.collectors.all(),
                    date=pickup.date,
                    payload=payload,
                )

            pickup.feedback_possible = True
            pickup.save()
コード例 #2
0
ファイル: models.py プロジェクト: tweeks024/karrot-backend
    def process_finished_pickup_dates(self):
        """find all pickup dates that are in the past and didn't get processed yet and add them to history
        """
        for pickup in self.filter(
                done_and_processed=False,
                date__lt=timezone.now(),
                deleted=False,
        ):
            if pickup.store.is_active():
                payload = {}
                payload['pickup_date'] = pickup.id
                if pickup.series:
                    payload['series'] = pickup.series.id
                if pickup.max_collectors:
                    payload['max_collectors'] = pickup.max_collectors
                if pickup.collectors.count() == 0:
                    stats.pickup_missed(pickup)
                    History.objects.create(
                        typus=HistoryTypus.PICKUP_MISSED,
                        group=pickup.store.group,
                        store=pickup.store,
                        date=pickup.date,
                        payload=payload,
                    )
                else:
                    stats.pickup_done(pickup)
                    History.objects.create(
                        typus=HistoryTypus.PICKUP_DONE,
                        group=pickup.store.group,
                        store=pickup.store,
                        users=pickup.collectors.all(),
                        date=pickup.date,
                        payload=payload,
                    )

            pickup.done_and_processed = True
            pickup.save()

            pickup_done.send(sender=PickupDate.__class__, instance=pickup)