Ignore:
Timestamp:
30 Dec 2014, 12:52:40 (10 years ago)
Author:
Henrik Bettermann
Message:

Move ProductOption? interfaces to productoptions to avoid nasty circular imports.

Use ISO_4217_CURRENCIES.

Location:
main/waeup.ikoba/trunk/src/waeup/ikoba/products
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.ikoba/trunk/src/waeup/ikoba/products/productoptions.py

    r12331 r12343  
    1616## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
    1717##
    18 """Components representing and aggregating product options.
     18"""Components with interfaces representing and aggregating product options.
    1919"""
    2020import grok
    2121from decimal import Decimal
     22from zope import schema
     23from zope.schema.interfaces import IObject
     24from zope.interface import Attribute, Interface
    2225from zope.formlib.interfaces import IInputWidget, IDisplayWidget
    2326from zope.publisher.interfaces.browser import IBrowserRequest
    2427from zope.schema.fieldproperty import FieldProperty
    2528from zope.schema import Object
    26 from waeup.ikoba.interfaces import IProductOption, IProductOptionField
     29from waeup.ikoba.interfaces import SimpleIkobaVocabulary
     30from waeup.ikoba.interfaces import MessageFactory as _
    2731from waeup.ikoba.widgets.objectwidget import (
    2832    IkobaObjectWidget, IkobaObjectDisplayWidget
    2933    )
     34from waeup.ikoba.payments.currencies import ISO_4217_CURRENCIES_VOCAB as currencies
     35
     36#currencies = SimpleIkobaVocabulary(
     37#    (_('NGN'),'NGN'),
     38#    (_('USD'),'USD'),
     39#    (_('EUR'),'EUR'),
     40#    )
     41
     42class IProductOption(Interface):
     43    """A product option entry.
     44
     45    """
     46    title = schema.TextLine(
     47        title = _(u'Title'),
     48        required = True,
     49        )
     50    fee = schema.Decimal(
     51        title = _(u'Fee'),
     52        required = False,
     53        )
     54    currency = schema.Choice(
     55        title = _(u'Currency'),
     56        vocabulary = currencies,
     57        required = False,
     58        )
     59
     60class IProductOptionField(IObject):
     61    """A zope.schema-like field for usage in interfaces.
     62
     63    Marker interface to distuingish product options from ordinary
     64    object fields. Needed for registration of widgets.
     65    """
    3066
    3167class ProductOption(grok.Model):
  • main/waeup.ikoba/trunk/src/waeup/ikoba/products/tests/test_productoptions.py

    r12342 r12343  
    55from zope.interface.verify import verifyObject, verifyClass
    66from zope.schema.interfaces import ConstraintNotSatisfied, WrongType
    7 from waeup.ikoba.interfaces import IProductOption, IProductOptionField, IIkobaUtils
    8 from waeup.ikoba.products.productoptions import ProductOption, ProductOptionField
     7from waeup.ikoba.interfaces import  IIkobaUtils
     8from waeup.ikoba.products.productoptions import (
     9    IProductOption, IProductOptionField, ProductOption, ProductOptionField)
    910from waeup.ikoba.utils.utils import IkobaUtils
    1011
Note: See TracChangeset for help on using the changeset viewer.