-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathviews.py
85 lines (68 loc) · 3.01 KB
/
views.py
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
from django.shortcuts import render, redirect, get_object_or_404
from .forms import ImmoscoutUserForm, ImmoscoutUserDataForm
from .models import ImmoscoutUser, ImmoscoutUserData
from django.http import HttpResponse, Http404
from .bot import ImmoscoutBot
from apps.models import App
from bots.models import Bot
from django.views import View
from django.urls import reverse, resolve
from django.views.generic.edit import UpdateView, DeleteView
from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic import TemplateView
from bots.views import BotCreateView
# Create your views here.
class SettingsView(LoginRequiredMixin, TemplateView):
login_url = 'control:login'
template_name = 'immoscout/settings.html'
#This view can create and update
class ImmoscoutDataCreateView(LoginRequiredMixin, UpdateView):
form_class = ImmoscoutUserDataForm
login_url = 'control:login'
def get_object(self, queryset=None):
return ImmoscoutUserData.objects.get_or_none(user=self.request.user)
def form_valid(self, form):
user_data = form.save(commit=False)
user_data.user = self.request.user
user_data.save()
return HttpResponse('success')
#This view can create and update
class ImmoscoutCreateView(LoginRequiredMixin, UpdateView):
form_class = ImmoscoutUserForm
login_url = 'control:login'
def get_object(self, queryset=None):
return ImmoscoutUser.objects.get_or_none(user=self.request.user)
def form_valid(self, form):
user_login = form.save(commit=False)
user_login.user = self.request.user
user_login.save()
return HttpResponse('success')
class ImmoscoutDeleteView(LoginRequiredMixin, DeleteView):
template_name = 'immoscout/delete_confirm.html' # <-- default name
def get_object(self, queryset=None):
user_login = ImmoscoutUser.objects.get_or_none(user=self.request.user)
if user_login:
user_data = ImmoscoutUserData.objects.get_or_none(user=self.request.user)
if user_data:
user_data.active = True
user_data.save()
else:
[profile.delete() for profile in self.request.user.profile_set.all() if profile.mode != 'telegram_only']
return user_login
raise Http404('not found')
def get_success_url(self):
return reverse('immoscout:settings')
class ActivateImmoscoutUserView(LoginRequiredMixin, View):
def get(self, request):
instance = ImmoscoutUser.objects.get_or_none(user=request.user)
if instance:
instance.active = not instance.active
instance.save()
return HttpResponse('success')
class ActivateImmoscoutUserDataView(LoginRequiredMixin, View):
def get(self, request):
instance = ImmoscoutUserData.objects.get_or_none(user=request.user)
if instance:
instance.active = not instance.active
instance.save()
return HttpResponse('success')