|
|
@@ -6,9 +6,10 @@ from django.contrib.auth.forms import UserCreationForm
|
|
6
|
6
|
from django.urls import reverse
|
|
7
|
7
|
from django.contrib.auth.decorators import login_required
|
|
8
|
8
|
|
|
9
|
|
-from fruit.models import Store, Product, Photo, ProductSKU
|
|
10
|
|
-from .forms import StoreForm, ProductForm, PhotoFormSet, InlinePhotoFormset, ProductSKUForm
|
|
|
9
|
+from fruit.models import Store, Product, Photo, ProductSKU, Sale, Inbox
|
|
|
10
|
+from .forms import StoreForm, ProductForm, InboxForm, SaleForm, PhotoFormSet, InlinePhotoFormset, ProductSKUForm, ProductFilter, SaleFilter, InboxFilter
|
|
11
|
11
|
from django.contrib import messages
|
|
|
12
|
+from django.core.paginator import Paginator
|
|
12
|
13
|
|
|
13
|
14
|
|
|
14
|
15
|
def index(request):
|
|
|
@@ -48,7 +49,27 @@ def mystore(request):
|
|
48
|
49
|
def product_index(request):
|
|
49
|
50
|
stores = request.user.store_created.all().order_by("-created_at")
|
|
50
|
51
|
products = stores[0].product_set.all().order_by("-created_at")
|
|
51
|
|
- return render(request, 'fruit/product_index.html', {'products': products, 'product': True})
|
|
|
52
|
+
|
|
|
53
|
+ f = ProductFilter(request.GET, queryset=products)
|
|
|
54
|
+
|
|
|
55
|
+ paginator = Paginator(f.qs, 25)
|
|
|
56
|
+ page_number = request.GET.get('page')
|
|
|
57
|
+ page_obj = paginator.get_page(page_number)
|
|
|
58
|
+
|
|
|
59
|
+ return render(request, 'fruit/product_index.html', {'products': products, 'product': True, 'page_obj': page_obj, 'filter': f})
|
|
|
60
|
+
|
|
|
61
|
+@login_required
|
|
|
62
|
+def sale_index(request):
|
|
|
63
|
+ stores = request.user.store_created.all().order_by("-created_at")
|
|
|
64
|
+ o_qs = stores[0].sale_set.all().order_by("-created_at")
|
|
|
65
|
+
|
|
|
66
|
+ f = SaleFilter(request.GET, queryset=o_qs)
|
|
|
67
|
+
|
|
|
68
|
+ paginator = Paginator(f.qs, 25)
|
|
|
69
|
+ page_number = request.GET.get('page')
|
|
|
70
|
+ page_obj = paginator.get_page(page_number)
|
|
|
71
|
+
|
|
|
72
|
+ return render(request, 'fruit/sale_index.html', {'o_qs': o_qs, 'sale_active': True, 'page_obj': page_obj, 'filter': f})
|
|
52
|
73
|
|
|
53
|
74
|
@login_required
|
|
54
|
75
|
def create_product(request):
|
|
|
@@ -97,11 +118,14 @@ def create_sku(request, pk):
|
|
97
|
118
|
message.error(request, "SKU created failed")
|
|
98
|
119
|
return redirect("fruit:create_sku", pk=int(pk))
|
|
99
|
120
|
|
|
100
|
|
- return render(request, 'fruit/sku_form.html', {'form': form})
|
|
|
121
|
+ return render(request, 'fruit/sku_form.html', {'form': form, 'pid': p.pk})
|
|
101
|
122
|
|
|
102
|
123
|
@login_required
|
|
103
|
124
|
def edit_sku(request, pk):
|
|
|
125
|
+
|
|
104
|
126
|
p = ProductSKU.objects.get(pk=pk)
|
|
|
127
|
+ p0 = p.product
|
|
|
128
|
+
|
|
105
|
129
|
form = ProductSKUForm(instance=p)
|
|
106
|
130
|
if request.method == "POST":
|
|
107
|
131
|
form = ProductSKUForm(request.POST)
|
|
|
@@ -113,7 +137,7 @@ def edit_sku(request, pk):
|
|
113
|
137
|
message.error(request, "SKU created failed")
|
|
114
|
138
|
return redirect("fruit:create_sku", pk=int(pk))
|
|
115
|
139
|
|
|
116
|
|
- return render(request, 'fruit/sku_form.html', {'form': form})
|
|
|
140
|
+ return render(request, 'fruit/sku_form.html', {'form': form, 'pid': p0.pk})
|
|
117
|
141
|
|
|
118
|
142
|
@login_required
|
|
119
|
143
|
def product_edit(request, pk):
|
|
|
@@ -151,7 +175,75 @@ def product_edit(request, pk):
|
|
151
|
175
|
|
|
152
|
176
|
return redirect("fruit:product_edit", pk = int(pk))
|
|
153
|
177
|
|
|
154
|
|
- return render(request, 'fruit/product_form.html', {'product': True, 'form': form, 'form2': form2, 'object': product })
|
|
|
178
|
+ return render(request, 'fruit/product_form.html', {'product': True, 'form': form, 'form2': form2, 'obj': product })
|
|
|
179
|
+
|
|
|
180
|
+@login_required
|
|
|
181
|
+def sale_edit(request, pk):
|
|
|
182
|
+ stores = request.user.store_created.all().order_by("-created_at")
|
|
|
183
|
+
|
|
|
184
|
+ obj = Sale.objects.get(pk=pk)
|
|
|
185
|
+ form = SaleForm(instance = obj)
|
|
|
186
|
+
|
|
|
187
|
+ if request.method == "POST":
|
|
|
188
|
+ form = SaleForm(request.POST)
|
|
|
189
|
+ if form.is_valid():
|
|
|
190
|
+ instance1 = form.save()
|
|
|
191
|
+ '''
|
|
|
192
|
+ print(instances)
|
|
|
193
|
+ for s in instances:
|
|
|
194
|
+ s.product = instance1
|
|
|
195
|
+ s.save()
|
|
|
196
|
+ '''
|
|
|
197
|
+ messages.success(request, "Sale Save")
|
|
|
198
|
+ else:
|
|
|
199
|
+ print("Invalid ")
|
|
|
200
|
+ if form.errors:
|
|
|
201
|
+ messages.error(request, form.errors)
|
|
|
202
|
+
|
|
|
203
|
+ return redirect("fruit:sale_edit", pk = int(pk))
|
|
|
204
|
+
|
|
|
205
|
+ return render(request, 'fruit/sale_form.html', {'sale_active': True, 'form': form, 'object': obj})
|
|
|
206
|
+
|
|
|
207
|
+
|
|
|
208
|
+@login_required
|
|
|
209
|
+def inbox_index(request):
|
|
|
210
|
+ stores = request.user.store_created.all().order_by("-created_at")
|
|
|
211
|
+ o_qs = stores[0].inbox_set.all().order_by("-created_at")
|
|
|
212
|
+
|
|
|
213
|
+ f = InboxFilter(request.GET, queryset=o_qs)
|
|
|
214
|
+
|
|
|
215
|
+ paginator = Paginator(f.qs, 25)
|
|
|
216
|
+ page_number = request.GET.get('page')
|
|
|
217
|
+ page_obj = paginator.get_page(page_number)
|
|
|
218
|
+
|
|
|
219
|
+ return render(request, 'fruit/inbox_index.html', {'o_qs': o_qs, 'inbox_active': True, 'page_obj': page_obj, 'filter': f})
|
|
|
220
|
+
|
|
|
221
|
+@login_required
|
|
|
222
|
+def inbox_edit(request, pk):
|
|
|
223
|
+ stores = request.user.store_created.all().order_by("-created_at")
|
|
|
224
|
+
|
|
|
225
|
+ obj = Inbox.objects.get(pk=pk)
|
|
|
226
|
+ form = InboxForm(instance = obj)
|
|
|
227
|
+
|
|
|
228
|
+ if request.method == "POST":
|
|
|
229
|
+ form = InboxForm(request.POST)
|
|
|
230
|
+ if form.is_valid():
|
|
|
231
|
+ instance1 = form.save()
|
|
|
232
|
+ '''
|
|
|
233
|
+ print(instances)
|
|
|
234
|
+ for s in instances:
|
|
|
235
|
+ s.product = instance1
|
|
|
236
|
+ s.save()
|
|
|
237
|
+ '''
|
|
|
238
|
+ messages.success(request, "Sale Save")
|
|
|
239
|
+ else:
|
|
|
240
|
+ print("Invalid ")
|
|
|
241
|
+ if form.errors:
|
|
|
242
|
+ messages.error(request, form.errors)
|
|
|
243
|
+
|
|
|
244
|
+ return redirect("fruit:sale_edit", pk = int(pk))
|
|
|
245
|
+
|
|
|
246
|
+ return render(request, 'fruit/inbox_form.html', {'inbox_active': True, 'form': form, 'object': obj})
|
|
155
|
247
|
|
|
156
|
248
|
def signup(request):
|
|
157
|
249
|
if request.method == 'POST':
|