示例#1
0
def add_param(request, object_id):
    try:
        if not request.user.is_superuser:
            raise AccessError
        p = get_object_or_404(Product, pk=int(object_id))
        ctype = ContentType.objects.get_for_model(Product)
        param = ProductParameterValue()
        param.content_type = ctype
        param.object_id = p.pk
        param.parameter = get_object_or_404(ProductParameter, pk=int(request.POST['param']))
        param.value = request.POST['value']
        if request.POST['keyparam'] == 'on':
            param.keyparam = True
        param.save()
        try:
            unit = param.parameter.unit.name
        except:
            unit = ''
        payload = {'success': True, 'name': param.parameter.name, 'unit': unit, 'id': param.pk,
                   'value': param.value}
    except AccessError:
        payload = {'success': False}
    except:
        payload = {'success': False}
    return AjaxLazyAnswer(payload)
示例#2
0
文件: ajax.py 项目: ukaoma/nnmware
def hotels_in_country(request):
    try:
        searched = Hotel.objects.all()
        return filter_hotels_on_map(request, searched)
    except:
        payload = {'success': False}
    return AjaxLazyAnswer(payload)
示例#3
0
文件: ajax.py 项目: ukaoma/nnmware
def client_review(request, pk):
    try:
        hotel = Hotel.objects.get(id=pk)
        #        guests = Booking.objects.filter(hotel=hotel,to_date__gte=now()).values_list('user', flat=True)
        if request.user.is_superuser:
            message = _('You are superuser and may add review.')
        elif request.user.pk in hotel.complete_booking_users_id:
            message = _('Thanks for you review!')
        else:
            raise UserNotAllowed
        if Review.objects.filter(hotel=hotel, user=request.user).count():
            raise UserNotAllowed
        food = request.POST['point_food']
        service = request.POST['point_service']
        purity = request.POST['point_purity']
        transport = request.POST['point_transport']
        prices = request.POST['point_prices']
        review = request.POST['review']
        r = Review()
        r.user = request.user
        r.username = request.user.first_name
        r.hotel = hotel
        r.food = food
        r.service = service
        r.purity = purity
        r.transport = transport
        r.prices = prices
        r.review = review
        r.save()
        payload = {'success': True, 'message': message}
    except UserNotAllowed:
        payload = {'success': False}
    return AjaxLazyAnswer(payload)
示例#4
0
def add_address(request):
    """
    Its Ajax add address in basket
    """
    try:
        if not request.user.is_authenticated():
            raise AccessError
        address = DeliveryAddress()
        address.user = request.user
        country_new = request.POST.get('country') or None
        if country_new is not None:
            country, created = Country.objects.get_or_create(name=country_new)
            address.country = country
        region_new = request.POST.get('region') or None
        if region_new is not None:
            region, created = Region.objects.get_or_create(name=region_new)
            address.region = region
        zipcode = request.POST.get('zipcode') or None
        if zipcode is not None:
            address.zipcode = zipcode
        city_new = request.POST.get('city') or None
        if city_new is not None:
            city, created = City.objects.get_or_create(name=city_new)
            address.city = city
        street = request.POST.get('street') or None
        if street is not None:
            address.street = street
        house_number = request.POST.get('house_number') or None
        if house_number is not None:
            address.house_number = house_number
        building = request.POST.get('building') or None
        if building is not None:
            address.building = building
        flat_number = request.POST.get('flat_number') or None
        if flat_number is not None:
            address.flat_number = flat_number
        first_name = request.POST.get('first_name') or None
        if first_name is not None:
            address.first_name = first_name
        middle_name = request.POST.get('middle_name') or None
        if middle_name is not None:
            address.middle_name = middle_name
        last_name = request.POST.get('last_name') or None
        if last_name is not None:
            address.last_name = last_name
        phone = request.POST.get('phone') or None
        if phone is not None:
            address.phone = phone
        skype = request.POST.get('skype') or None
        if skype is not None:
            address.skype = skype
        address.save()
        payload = {'success': True}
    except AccessError:
        payload = {'success': False, 'error': _('You are not allowed for add address')}
    except:
        payload = {'success': False}
    return AjaxLazyAnswer(payload)
示例#5
0
 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)
示例#6
0
文件: ajax.py 项目: ukaoma/nnmware
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)
示例#7
0
    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)
示例#8
0
文件: ajax.py 项目: ukaoma/nnmware
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)
示例#9
0
文件: ajax.py 项目: ukaoma/nnmware
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)
示例#10
0
 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)
示例#11
0
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)
示例#12
0
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)
示例#13
0
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)
示例#14
0
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)
示例#15
0
文件: ajax.py 项目: ukaoma/nnmware
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)
示例#16
0
文件: ajax.py 项目: ukaoma/nnmware
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)
示例#17
0
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)
示例#18
0
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)
示例#19
0
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)
示例#20
0
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)
示例#21
0
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)
示例#22
0
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)
示例#23
0
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)
示例#24
0
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)
示例#25
0
文件: ajax.py 项目: ukaoma/nnmware
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)
示例#26
0
文件: ajax.py 项目: ukaoma/nnmware
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)
示例#27
0
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)
示例#28
0
文件: ajax.py 项目: ukaoma/nnmware
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)
示例#29
0
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)
示例#30
0
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)