Exemple #1
0
 def update(self, request, pk=None):
     winner_instance = payutc_models.GoodiesWinner.objects.get(pk=pk)
     winner_instance.picked_up = not winner_instance.picked_up
     winner_instance.save()
     serializer = payutc_serializers.GoodiesWinnerSerializer(
         winner_instance)
     return JsonResponse(serializer.data)
Exemple #2
0
    def create(self, request):
        """Méthode pour générer 20 vainqueurs des goodies parmis les non-membres du Pic"""

        # Récupération des ventes entre une date de début et une date de fin
        # START doit être au format "AAAA-MM-JJ"
        # END doit être au format "AAAA-MM-JJ"
        # ROW_COUNT représente le nombre maximum de ventes récupérées
        sessionid = request.session['payutc_session']
        p = PayutcClient()
        p.login_admin()
        start = request.data['start_date'] + "T00:00:01.000Z"
        end = request.data['end_date'] + "T23:00:00.000Z"
        ROW_COUNT = 20000
        sales = p.get_sales(start=start, end=end,
                            row_count=ROW_COUNT)['transactions']

        # Recherche des membres dans le Pic actuel
        pic_members = []
        queryset = core_models.UserRight.objects.filter(
            Q(right='A') | Q(right='M'))
        serializer = core_serializers.UserRightSerializer(queryset, many=True)
        # Récupération des logins des membres du Pic pour les supprimer par la suite de la génération
        for i, user in enumerate(serializer.data):
            login = serializer.data[i]['login']
            pic_members.append(login)

        # Récupération aléatoire d'utilisateurs
        goodies_winners = []
        nb_sales = len(sales)
        while (len(goodies_winners) < 20):
            # Tant qqu'on a pas 20 vainqueurs on itère
            random_value = random.randint(1, nb_sales)
            user = sales[int(random_value) -
                         1]['rows'][0]['payments'][0]['buyer']
            user_description = user["first_name"] + " " + user["last_name"]
            # Si l'utilisateur n'est pas un membre du Pic ou un login déjà dans la liste des vainqueurs, ajout
            if (user["username"] not in pic_members
                    and user_description not in goodies_winners):
                goodies_winners.append(user_description)
                payutc_models.GoodiesWinner.objects.create(
                    winner=user_description, picked_up=False)

        # Renvoi des données
        queryset = payutc_models.GoodiesWinner.objects.all()
        serializer = payutc_serializers.GoodiesWinnerSerializer(queryset,
                                                                many=True)
        return JsonResponse({'winners': serializer.data})
Exemple #3
0
 def list(self, request):
     queryset = payutc_models.GoodiesWinner.objects.all()
     serializer = payutc_serializers.GoodiesWinnerSerializer(queryset,
                                                             many=True)
     return JsonResponse({'winners': serializer.data})