|
1 | 1 | from django.shortcuts import render |
2 | 2 | from django.contrib.auth.decorators import login_required |
3 | 3 | from django.views.generic import ListView,CreateView,UpdateView,DetailView |
4 | | -from DjangoEcommerceApp.models import Categories,SubCategories |
| 4 | +from DjangoEcommerceApp.models import Categories,SubCategories,CustomUser,MerchantUser |
5 | 5 | from django.contrib.messages.views import SuccessMessageMixin |
| 6 | +from django.core.files.storage import FileSystemStorage |
| 7 | +from django.contrib.messages.views import messages |
| 8 | +from django.urls import reverse |
| 9 | +from django.http import HttpResponseRedirect |
6 | 10 |
|
7 | 11 | @login_required(login_url="/admin/") |
8 | 12 | def admin_home(request): |
@@ -41,3 +45,84 @@ class SubCategoriesUpdate(SuccessMessageMixin,UpdateView): |
41 | 45 | fields="__all__" |
42 | 46 | template_name="admin_templates/sub_category_update.html" |
43 | 47 |
|
| 48 | +class MerchantUserListView(ListView): |
| 49 | + model=MerchantUser |
| 50 | + template_name="admin_templates/merchant_list.html" |
| 51 | + |
| 52 | +class MerchantUserCreateView(SuccessMessageMixin,CreateView): |
| 53 | + template_name="admin_templates/merchant_create.html" |
| 54 | + model=CustomUser |
| 55 | + fields=["first_name","last_name","email","username","password"] |
| 56 | + |
| 57 | + def form_valid(self,form): |
| 58 | + |
| 59 | + #Saving Custom User Object for Merchant User |
| 60 | + user=form.save(commit=False) |
| 61 | + user.is_active=True |
| 62 | + user.user_type=3 |
| 63 | + user.set_password(form.cleaned_data["password"]) |
| 64 | + user.save() |
| 65 | + |
| 66 | + #Saving Merchant user |
| 67 | + profile_pic=self.request.FILES["profile_pic"] |
| 68 | + fs=FileSystemStorage() |
| 69 | + filename=fs.save(profile_pic.name,profile_pic) |
| 70 | + profile_pic_url=fs.url(filename) |
| 71 | + |
| 72 | + user.merchantuser.profile_pic=profile_pic_url |
| 73 | + user.merchantuser.company_name=self.request.POST.get("company_name") |
| 74 | + user.merchantuser.gst_details=self.request.POST.get("gst_details") |
| 75 | + user.merchantuser.address=self.request.POST.get("address") |
| 76 | + is_added_by_admin=False |
| 77 | + |
| 78 | + if self.request.POST.get("is_added_by_admin")=="on": |
| 79 | + is_added_by_admin=True |
| 80 | + |
| 81 | + user.merchantuser.is_added_by_admin=is_added_by_admin |
| 82 | + user.save() |
| 83 | + messages.success(self.request,"Merchant User Created") |
| 84 | + return HttpResponseRedirect(reverse("merchant_list")) |
| 85 | + |
| 86 | +class MerchantUserUpdateView(SuccessMessageMixin,UpdateView): |
| 87 | + template_name="admin_templates/merchant_update.html" |
| 88 | + model=CustomUser |
| 89 | + fields=["first_name","last_name","email","username","password"] |
| 90 | + |
| 91 | + def get_context_data(self,**kwargs): |
| 92 | + context=super().get_context_data(**kwargs) |
| 93 | + merchantuser=MerchantUser.objects.get(auth_user_id=self.object.pk) |
| 94 | + context["merchantuser"]=merchantuser |
| 95 | + return context |
| 96 | + |
| 97 | + def form_valid(self,form): |
| 98 | + |
| 99 | + #Saving Custom User Object for Merchant User |
| 100 | + user=form.save(commit=False) |
| 101 | + user.set_password(form.cleaned_data["password"]) |
| 102 | + user.save() |
| 103 | + |
| 104 | + #Saving Merchant user |
| 105 | + merchantuser=MerchantUser.objects.get(auth_user_id=user.id) |
| 106 | + if self.request.FILES.get("profile_pic",False): |
| 107 | + profile_pic=self.request.FILES["profile_pic"] |
| 108 | + fs=FileSystemStorage() |
| 109 | + filename=fs.save(profile_pic.name,profile_pic) |
| 110 | + profile_pic_url=fs.url(filename) |
| 111 | + merchantuser.profile_pic=profile_pic_url |
| 112 | + |
| 113 | + merchantuser.company_name=self.request.POST.get("company_name") |
| 114 | + merchantuser.gst_details=self.request.POST.get("gst_details") |
| 115 | + merchantuser.address=self.request.POST.get("address") |
| 116 | + is_added_by_admin=False |
| 117 | + |
| 118 | + if self.request.POST.get("is_added_by_admin")=="on": |
| 119 | + is_added_by_admin=True |
| 120 | + |
| 121 | + merchantuser.is_added_by_admin=is_added_by_admin |
| 122 | + merchantuser.save() |
| 123 | + messages.success(self.request,"Merchant User Updated") |
| 124 | + return HttpResponseRedirect(reverse("merchant_list")) |
| 125 | + |
| 126 | + |
| 127 | + |
| 128 | + |
0 commit comments