def post(self, request, *args, **kwargs): self.success = True location = None try: logout(self.request) location = '/' except: self.success = False payload = {'success': self.success, 'location': location} return AjaxLazyAnswer(payload)
def base_autocomplete(obj, request): search_qs = obj.objects.filter( Q(name__icontains=request.POST['q']) | Q(name_en__icontains=request.POST['q'])).order_by('name') results = [] for r in search_qs: userstring = {'name': r.get_name, 'slug': r.slug} results.append(userstring) payload = {'answer': results} return AjaxLazyAnswer(payload)
def form_invalid(self, form, *args, **kwargs): self.data = as_json(form.errors) self.success = False payload = {'success': self.success, 'data': self.data} if self.request.is_ajax(): return AjaxLazyAnswer(payload) else: return super(AjaxFormMixin, self).form_invalid(form, *args, **kwargs)
def delete_discount(request): try: d = Discount.objects.get(pk=int(request.POST['discount'])) if not request.user in d.hotel.admins.all( ) and not request.user.is_superuser: raise AccessError d.delete() payload = {'success': True} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def edit_discount(request): try: d = Discount.objects.get(pk=int(request.POST['discount'])) if not request.user in d.hotel.admins.all( ) and not request.user.is_superuser: raise AccessError html = render_to_string('cabinet/edit_discount.html', {'discount': d}) payload = {'success': True, 'html': html} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def form_valid(self, form): if self.request.is_ajax(): self.success = True payload = dict(success=self.success, location=self.success_url or self.get_success_url()) try: payload['status_msg'] = self.status_msg except: pass return AjaxLazyAnswer(payload) else: return HttpResponseRedirect(self.success_url)
def delete_feedback(request, object_id): # Link used when User delete the feedback try: if not request.user.is_superuser: raise AccessError Feedback.objects.get(pk=int(object_id)).delete() payload = {'success': True} except AccessError: payload = {'success': False} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def delete_comment(request, object_id): # Link used when Admin delete the comment try: if not request.user.is_superuser: raise AccessError Nnmcomment.objects.get(pk=int(object_id)).delete() payload = {'success': True} except AccessError: payload = {'success': False} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def param_value_delete(request, object_id): # Link used when User delete the param value try: if not request.user.is_superuser: raise AccessError ProductParameterValue.objects.get(pk=int(object_id)).delete() payload = {'success': True} except AccessError: payload = {'success': False} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def delete_address(request, object_id): # Link used when User delete the address delivery try: if not request.user.is_authenticated(): raise AccessError DeliveryAddress.objects.get(pk=int(object_id)).delete() payload = {'success': True, 'id': int(object_id)} except AccessError: payload = {'success': False} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def add_room_discount(request): try: d = Discount.objects.get(pk=int(request.POST['discount'])) if not request.user in d.hotel.admins.all( ) and not request.user.is_superuser: raise AccessError r = Room.objects.get(pk=int(request.POST['room'])) if not RoomDiscount.objects.filter(room=r, discount=d).exists(): RoomDiscount(room=r, discount=d, date=now()).save() payload = {'success': True} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def payment_method(request): try: p_m = request.POST['p_m'] payment_method = PaymentMethod.objects.get(pk=p_m) payload = { 'success': True, 'id': payment_method.pk, 'description': payment_method.description, 'card': payment_method.use_card } except: payload = {'success': False} return AjaxLazyAnswer(payload)
def autocomplete_search(request, size=16): results = [] search_qs = Product.objects.filter( Q(name__icontains=request.POST['q']) | Q(name_en__icontains=request.POST['q'])).order_by('name')[:5] for r in search_qs: img = make_thumbnail(r.main_image, width=int(size)) userstring = {'name': r.name, 'path': r.get_absolute_url(), 'img': img, 'slug': r.slug, 'amount': "%0.2f" % (r.amount,), 'id': r.pk} results.append(userstring) payload = {'answer': results} return AjaxLazyAnswer(payload)
def add_material(request, object_id): try: if not request.user.is_superuser: raise AccessError p = get_object_or_404(Product, pk=int(object_id)) material = get_object_or_404(ProductMaterial, pk=int(request.POST['material'])) p.materials.add(material) p.save() payload = {'success': True, 'name': material.name, 'id': material.pk} except AccessError: payload = {'success': False} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def delete_related_product(request, object_id, product_id): try: if not request.user.is_superuser: raise AccessError p = get_object_or_404(Product, pk=int(object_id)) product = get_object_or_404(Product, pk=int(product_id)) p.related_products.remove(product) p.save() payload = {'success': True} except AccessError: payload = {'success': False} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def delete_material(request, object_id, material_id): try: if not request.user.is_superuser: raise AccessError p = get_object_or_404(Product, pk=int(object_id)) material = get_object_or_404(ProductMaterial, pk=int(material_id)) p.materials.remove(material) p.save() payload = {'success': True} except AccessError: payload = {'success': False} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def delete_product(request, object_id): # Link used when User delete the product try: if not request.user.is_superuser: raise AccessError p = Product.objects.get(pk=int(object_id)) p.visible = False p.save() payload = {'success': True} except AccessError: payload = {'success': False} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def push_answer(request, object_id): try: f = Feedback.objects.get(pk=int(object_id)) f.answer = request.POST.get('answer') recipients = [f.email] mail_dict = {'feedback': f} subject = 'emails/feedback_answer_subject.txt' body = 'emails/feedback_answer_body.txt' send_template_mail(subject, body, mail_dict, recipients) f.save() payload = {'success': True, 'location': f.get_absolute_url()} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def del_compare_product(request, object_id): try: compare = request.session['shop_compare'] except: compare = [] product_id = int(object_id) if product_id in compare: compare.remove(product_id) try: request.session['shop_compare'] = compare payload = {'success': True} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def delete_color(request, object_id, color_id): try: if not request.user.is_superuser: raise AccessError p = get_object_or_404(Product, pk=int(object_id)) color = get_object_or_404(ProductColor, pk=int(color_id)) p.colors.remove(color) p.save() payload = {'success': True} except AccessError: payload = {'success': False} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def request_hotel_delete(request, pk): try: req_hotel = RequestAddHotel.objects.get(id=pk) if not request.user.is_superuser: raise UserNotAllowed req_hotel.delete() payload = {'success': True} except UserNotAllowed: payload = { 'success': False, 'error_msg': _('You are not allowed change room variants.') } except: payload = {'success': False} return AjaxLazyAnswer(payload)
def hotels_in_city(request): try: c = request.POST['city'] path = request.POST['path'] or None if path: key = sha1('%s' % (path, )).hexdigest() data_key = cache.get(key) searched = Hotel.objects.filter(pk__in=data_key) else: city = City.objects.get(pk=c) searched = Hotel.objects.filter(Q(city=city) | Q(addon_city=city)) return filter_hotels_on_map(request, searched) except: payload = {'success': False} return AjaxLazyAnswer(payload)
def add_related_product(request, object_id): try: if not request.user.is_superuser: raise AccessError p = get_object_or_404(Product, pk=int(object_id)) product = get_object_or_404(Product, pk=int(request.POST['product'])) p.related_products.add(product) p.save() payload = {'success': True, 'name': product.name, 'id': product.pk, 'url': product.get_absolute_url(), 'src': make_thumbnail(product.main_image, width=settings.RELATED_PRODUCT_WIDTH, height=settings.RELATED_PRODUCT_HEIGHT, aspect=1)} except AccessError: payload = {'success': False} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def push_feedback(request): """ Its Ajax posted feedback """ try: msg = Feedback() msg.ip = request.META['REMOTE_ADDR'] msg.user_agent = request.META['HTTP_USER_AGENT'] msg.name = request.POST.get('name') msg.email = request.POST.get('email') msg.message = request.POST.get('message') msg.save() payload = {'success': True} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def room_delete(request, pk): try: room = Room.objects.get(id=pk) if request.user not in room.hotel.admins.all( ) and not request.user.is_superuser: raise UserNotAllowed room.delete() payload = {'success': True} except UserNotAllowed: payload = { 'success': False, 'error_msg': _('You are not allowed change room variants.') } except: payload = {'success': False} return AjaxLazyAnswer(payload)
def add_color(request, object_id): try: if not request.user.is_superuser: raise AccessError p = get_object_or_404(Product, pk=int(object_id)) color = get_object_or_404(ProductColor, pk=int(request.POST['color'])) w = int(request.POST['width']) h = int(request.POST['height']) p.colors.add(color) p.save() payload = {'success': True, 'name': color.name, 'id': color.pk, 'src': make_thumbnail(color.img.url, width=w, height=h)} except AccessError: payload = {'success': False} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def delete_basket(request, object_id): # Link used when User delete the item from basket try: Basket.objects.get(pk=int(object_id)).delete() if request.user.is_authenticated(): basket_user = Basket.objects.filter(user=request.user) else: basket_user = Basket.objects.filter(session_key=get_session_from_request(request)) basket_count = basket_user.count() all_sum = 0 for item in basket_user: all_sum += item.sum payload = {'success': True, 'basket_count': basket_count, 'basket_sum': "%0.2f" % (all_sum,), 'id': int(object_id)} except AccessError: payload = {'success': False} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def add_basket(request, object_id): # Link used when User add to basket try: p = Product.objects.get(pk=int(object_id)) if not p.avail or p.quantity < 1 or p.amount <= 0: raise AccessError try: color_id = request.POST['color'] color = ProductColor.objects.get(pk=int(color_id)) addon_text = color.name except: addon_text = '' if not request.user.is_authenticated(): session_key = get_session_from_request(request) if Basket.objects.filter(session_key=session_key, product=p, addon=addon_text).count() > 0: b = Basket.objects.get(session_key=session_key, product=p, addon=addon_text) b.quantity += 1 else: b = Basket(session_key=session_key, product=p, addon=addon_text) b.quantity = 1 b.save() basket_user = Basket.objects.filter(session_key=session_key) else: if Basket.objects.filter(user=request.user, product=p, addon=addon_text).count() > 0: b = Basket.objects.get(user=request.user, product=p, addon=addon_text) b.quantity += 1 else: b = Basket(user=request.user, product=p, addon=addon_text) b.quantity = 1 b.save() basket_user = Basket.objects.filter(user=request.user) basket_count = basket_user.count() all_sum = 0 for item in basket_user: all_sum += item.sum payload = {'success': True, 'basket_count': basket_count, 'basket_sum': "%0.2f" % (all_sum,)} except AccessError: payload = {'success': False} except: payload = {'success': False} return AjaxLazyAnswer(payload)
def room_variants(request): try: room = Room.objects.get(id=request.POST['room_id']) if request.user not in room.hotel.admins.all( ) and not request.user.is_superuser: raise UserNotAllowed settlements = SettlementVariant.objects.filter( room=room, enabled=True).order_by('settlement') results = [] for s in settlements: results.append(s.settlement) payload = {'success': True, 'settlements': results} except UserNotAllowed: payload = { 'success': False, 'error_msg': _('You are not allowed change room variants.') } except: payload = {'success': False} return AjaxLazyAnswer(payload)
def push_shopcallback(request): """ Its Ajax posted shop callback """ try: cb = ShopCallback() cb.ip = request.META['REMOTE_ADDR'] cb.user_agent = request.META['HTTP_USER_AGENT'] cb.clientname = request.POST.get('clientname') cb.clientphone = request.POST.get('clientphone') cb.save() mail_dict = {'callback': cb} recipients = [settings.SHOP_MANAGER] subject = 'emails/callback_admin_subject.txt' body = 'emails/callback_admin_body.txt' send_template_mail(subject, body, mail_dict, recipients) payload = {'success': True} except: payload = {'success': False} return AjaxLazyAnswer(payload)