示例#1
0
文件: form.py 项目: viona/Easyshop
class CouponCodeForm(form.Form):
    """
    """
    fields = field.Fields(ICouponCodeForm)
    ignoreContext = True
    label = _(u"If you have a Coupon Code please enter it here")

    @button.buttonAndHandler(_("apply code"))
    def apply_code(self,action):
        data, errors = self.extractData()
        coupon_id = data.get('couponId','')
        context = aq_inner(self.context)
        cm = ICouponManagement(context)
        sm = IStatusMessage(self.request)

        if not coupon_id:
            self.status = _("please enter a valid coupon id")
            return

        try:
            cm.saveCouponConsumer(coupon_id.strip())
            sm.addStatusMessage(_("valid coupon consumed"))

            template_id = component.getMultiAdapter(
                (self.context,self.request),
                name="plone_context_state").current_page_url().split('/').pop()

            return self.request.response.redirect(template_id)
        except Exception, msg:
            # see easyshop.coupon.adapters.coupon_management for exceptions
            self.status = translate(_(str(msg)),
                target_language=self.request.get('LANGUAGE','de'))
示例#2
0
文件: form.py 项目: Easyshop/Easyshop
    def apply_code(self,action):
        data, errors = self.extractData()
        coupon_id = data.get('couponId','')
        context = aq_inner(self.context)
        cm = ICouponManagement(context)
        sm = IStatusMessage(self.request)

        if not coupon_id:
            self.status = _("please enter a valid coupon id")
            return

        try:
            cm.saveCouponConsumer(coupon_id.strip())
            sm.addStatusMessage(_("valid coupon consumed"))

            template_id = component.getMultiAdapter(
                (self.context,self.request),
                name="plone_context_state").current_page_url().split('/').pop()

            return self.request.response.redirect(template_id)
        except Exception, msg:
            # see easyshop.coupon.adapters.coupon_management for exceptions
            self.status = translate(_(str(msg)),
                target_language=self.request.get('LANGUAGE','de'))
示例#3
0
    atapi.StringField('title',
        widget=atapi.StringWidget(
            visible=dict(
                edit='invisible',
                view='invisible',
            ),
        ),
        required=False
    ),

    atapi.StringField('couponId',
        default_method='generate_cid',
        required=True,
        widget=atapi.StringWidget(
            label=_('coupon ID'),
        ),
    ),

    atapi.LinesField('consumers',
        widget=atapi.LinesWidget(
            visible=dict(
                view='visible',
                edit='hidden',
            ),
        ),
    ),
))

class Coupon(atapi.BaseContent):
    """easyshop coupon"""
示例#4
0
文件: form.py 项目: viona/Easyshop
class ICouponCodeForm(interface.Interface):

    couponId = schema.ASCIILine(
        title = _("coupon code"),
        required = False,
    )
示例#5
0
        return len(coupons)>0 and coupons[0].getObject() or None

    def getValidCoupon(self, check_coupon=None):
        """
        """
        stored_coupon_id = self.shop.REQUEST.get(COUPON_COOKIE_NAME)

        if not stored_coupon_id:
            return

        coupon_id = decodestring(unquote(stored_coupon_id))
        coupon = self.getCoupon(coupon_id)

        if check_coupon is not None:
            if coupon!=check_coupon:
                return

        customer = ICustomerManagement(self.shop).getAuthenticatedCustomer()

        if customer and \
           customer.id in coupon.getConsumers():
            return coupon

        return

# messagefactories for i18ndude
_("invalid customer")
_("no coupon found")
_("coupon already consumed")
示例#6
0
from easyshop.coupon.interfaces import ICoupon
from easyshop.coupon.config import PROJECTNAME, COUPON_ID_PATTERN, \
                                   COUPON_ID_LENGTH

schema = atapi.BaseSchema.copy() + atapi.Schema((
    atapi.StringField('title',
                      widget=atapi.StringWidget(visible=dict(
                          edit='invisible',
                          view='invisible',
                      ), ),
                      required=False),
    atapi.StringField(
        'couponId',
        default_method='generate_cid',
        required=True,
        widget=atapi.StringWidget(label=_('coupon ID'), ),
    ),
    atapi.LinesField(
        'consumers',
        widget=atapi.LinesWidget(visible=dict(
            view='visible',
            edit='hidden',
        ), ),
    ),
))


class Coupon(atapi.BaseContent):
    """easyshop coupon"""
    implements(ICoupon)
    _at_rename_after_creation = True