def get_schema(self, resource, context): schema = {'paths': String(multiple=True, mandatory=True)} for group in UserGroup_Enumerate.get_options(): group = context.root.get_resource(group['name']) prefix = group.get_prefix() schema.update( {'%spre-tax-price' % prefix: Decimal(default=decimal(0), mandatory=True), '%stax' % prefix: TaxesEnumerate(mandatory=True), '%shas_reduction' % prefix: Boolean, '%snot_buyable_by_groups' % prefix: Tokens, '%sreduce-pre-tax-price' % prefix: Decimal(default=decimal(0))}) return schema
def action(self, resource, context, form): paths = form['paths'] for path in paths: product = context.root.get_resource(path) for group in UserGroup_Enumerate.get_options(): group = context.root.get_resource(group['name']) prefix = group.get_prefix() for key in ['pre-tax-price', 'tax', 'has_reduction', 'reduce-pre-tax-price']: key = '%s%s' % (prefix, key) product.set_property(key, form[key]) return context.come_back(messages.MSG_CHANGES_SAVED, goto='./;browse_content')
def get_metadata_schema(cls): return merge_dicts(DynamicFolder.get_metadata_schema(), cls.base_schema, is_enabled=Boolean(title=MSG(u'Enabled')), user_group=UserGroup_Enumerate(title=MSG(u'Group')))