Esempio n. 1
0
 def get_metadata_schema(cls):
     return merge_dicts(ShopFolder.get_metadata_schema(),
                        data=XHTMLBody(multilingual=True),
                        title=Unicode(multilingual=True),
                        enabled=Boolean(default=True),
                        only_this_groups=UserGroup_Enumerate(multiple=True),
                        logo=ImagePathDataType(multilingual=True))
Esempio n. 2
0
class PaymentWay_Configure(DBResource_Edit):

    access = 'is_admin'

    schema = {
        'title': Unicode(mandatory=True, multilingual=True),
        'logo': ImagePathDataType(mandatory=True, multilingual=True),
        'data': XHTMLBody(mandatory=True, multilingual=True),
        'only_this_groups': UserGroup_Enumerate(multiple=True),
        'enabled': Boolean(mandatory=True)
    }

    widgets = [
        TextWidget('title', title=MSG(u'Title')),
        ImageSelectorWidget('logo', title=MSG(u'Logo')),
        BooleanRadio('enabled', title=MSG(u'Enabled ?')),
        RTEWidget('data', title=MSG(u"Description")),
        SelectWidget('only_this_groups', title=MSG(u"Only for this groups"))
    ]

    submit_value = MSG(u'Edit configuration')

    def get_value(self, resource, context, name, datatype):
        language = resource.get_content_language(context)
        return resource.get_property(name, language=language)

    def action(self, resource, context, form):
        language = resource.get_content_language(context)
        for key, datatype in self.schema.items():
            if getattr(datatype, 'multilingual', False):
                resource.set_property(key, form[key], language=language)
            else:
                resource.set_property(key, form[key])
        return context.come_back(messages.MSG_CHANGES_SAVED, goto='./')
Esempio n. 3
0
 def get_schema(self, resource, context):
     product_model = resource.get_product_model()
     site_root = resource.get_site_root()
     shop = get_shop(site_root)
     # Cover is mandatory
     mandatory = shop.get_property('product_cover_is_mandatory')
     product_schema['cover'].mandatory = mandatory
     # Return schema
     return merge_dicts(
               product_schema,
               (product_model.get_model_schema() if product_model else {}),
               data=XHTMLBody(multilingual=True),
               category=CategoriesEnumerate,
               not_buyable_by_groups=UserGroup_Enumerate(multiple=True),
               tags=TagsList(site_root=site_root, multiple=True))
Esempio n. 4
0
from itools.datatypes import Decimal
from itools.gettext import MSG

# Import from products
from shop.products.enumerate import ProductModelsEnumerate
from shop.datatypes import UserGroup_Enumerate


class DeliveryModes(Enumerate):

    options = [{
        'name': 'weight',
        'value': MSG(u'Depends of weight')
    }, {
        'name': 'quantity',
        'value': MSG(u'Depends of quantity')
    }]


delivery_schema = {
    'title': Unicode,
    'logo': PathDataType,
    'description': Unicode,
    'enabled': Boolean(default=True),
    'mode': DeliveryModes(default='weight'),
    'only_this_models': ProductModelsEnumerate(multiple=True),
    'only_this_groups': UserGroup_Enumerate(multiple=True),
    'insurance': Decimal(default=decimal(0)),
    'is_free': Boolean
}