File: view.py

package info (click to toggle)
python-django-simple-history 3.7.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,124 kB
  • sloc: python: 8,454; makefile: 186
file content (118 lines) | stat: -rw-r--r-- 3,350 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
from datetime import date

from django.http import HttpResponse
from django.urls import reverse_lazy
from django.views import View
from django.views.generic import (
    CreateView,
    DeleteView,
    DetailView,
    ListView,
    UpdateView,
)

from simple_history.tests.custom_user.models import CustomUser
from simple_history.tests.models import (
    BucketDataRegisterRequestUser,
    Poll,
    PollWithHistoricalIPAddress,
)
from simple_history.utils import bulk_create_with_history, bulk_update_with_history


class PollCreate(CreateView):
    model = Poll
    fields = ["question", "pub_date"]


class PollBulkCreateView(View):
    def post(self, request, *args, **kwargs):
        poll_info_list = [
            {"question": "1", "pub_date": date(2020, 1, 1)},
            {"question": "2", "pub_date": date(2020, 1, 2)},
        ]
        polls_to_create = [Poll(**poll_info) for poll_info in poll_info_list]
        bulk_create_with_history(polls_to_create, Poll)
        return HttpResponse(status=200)


class PollBulkCreateWithDefaultUserView(View):
    def post(self, request, *args, **kwargs):
        default_user = CustomUser.objects.create_superuser(
            "test_user", "test_user@example.com", "pass"
        )
        # Bulk create objects with history
        poll_info_list = [
            {"question": "1", "pub_date": date(2020, 1, 1)},
            {"question": "2", "pub_date": date(2020, 1, 2)},
        ]
        polls_to_create = [Poll(**poll_info) for poll_info in poll_info_list]
        bulk_create_with_history(polls_to_create, Poll, default_user=default_user)
        return HttpResponse(status=200)


class PollBulkUpdateView(View):
    def post(self, request, *args, **kwargs):
        polls = Poll.objects.order_by("pub_date")
        for i, poll in enumerate(polls):
            poll.question = str(i)

        bulk_update_with_history(polls, fields=["question"], model=Poll)
        return HttpResponse(status=201)


class PollBulkUpdateWithDefaultUserView(View):
    def post(self, request, *args, **kwargs):
        default_user = CustomUser.objects.create_superuser(
            "test_user", "test_user@example.com", "pass"
        )
        polls = Poll.objects.all()
        for i, poll in enumerate(polls):
            poll.question = str(i)

        bulk_update_with_history(
            polls, fields=["question"], model=Poll, default_user=default_user
        )
        return HttpResponse(status=201)


class PollWithHistoricalIPAddressCreate(CreateView):
    model = PollWithHistoricalIPAddress
    fields = ["question", "pub_date"]


class PollUpdate(UpdateView):
    model = Poll
    fields = ["question", "pub_date"]


class PollDelete(DeleteView):
    model = Poll
    success_url = reverse_lazy("poll-list")


class PollList(ListView):
    model = Poll
    fields = ["question", "pub_date"]


class PollDetail(DetailView):
    model = Poll
    fields = ["question", "pub_date"]


class BucketDataRegisterRequestUserCreate(CreateView):
    model = BucketDataRegisterRequestUser
    fields = ["data"]


class BucketDataRegisterRequestUserDetail(DetailView):
    model = BucketDataRegisterRequestUser
    fields = ["data"]


class MockableView(View):
    """This view exists to easily mock a response."""

    def get(self, request, *args, **kwargs):
        return HttpResponse(status=200)