def init_resource(self, **kw): Folder.init_resource(self, **kw) # Add current user as admin username = get_context().user.name admins = kw.get('admins', []) + [username] self.set_property('admins', tuple(admins))
def init_resource(self, *args, **kw): Folder.init_resource(self, *args, **kw) # XXX ctime (Should be done in ikaaro) self.set_property('ctime', datetime.now()) # Currency shop = get_shop(self) devise = shop.get_property('devise') self.set_property('devise', devise) # Workflow self.onenter_open()
def init_resource(self, *args, **kw): Folder.init_resource(self, *args, **kw) self.make_resource('orders', Orders, title={'en': u'Orders'}) self.make_resource('payments', PaymentModule, title={'en': u'Payments'}) self.make_resource('products', Products, title={'en': u'Products'}) self.make_resource('taxes', Taxes, title={'en': u'Taxes'})
def update_relative_links(self, source): Folder.update_relative_links(self, source) TagsAware.update_relative_links(self, source) target = self.get_canonical_path() resources_old2new = get_context().database.resources_old2new # metadata schema = self.class_schema for key, datatype in schema.iteritems(): if issubclass(datatype, PathDataType) is False: continue value = self.get_property(key) if not value: continue ref = get_reference(value) if ref.scheme: continue path, view = get_path_and_view(ref.path) # Calcul the old absolute path old_abs_path = source.resolve2(path) # Check if the target path has not been moved new_abs_path = resources_old2new.get(old_abs_path, old_abs_path) # Build the new path with the right path # Absolute path allow to call get_pathto with the target new_path = str(target.get_pathto(new_abs_path)) + view # Update the property self.set_property(key, Path(new_path)) # comments comments = self.metadata.get_property('comment') or [] for comment in comments: # XXX hardcoded, not typed for key in ('attachment',): value = comment.get_parameter(key) if not value: continue ref = get_reference(value) if ref.scheme: continue path, view = get_path_and_view(ref.path) # Calcul the old absolute path old_abs_path = source.resolve2(path) # Check if the target path has not been moved new_abs_path = resources_old2new.get(old_abs_path, old_abs_path) # Build the new path with the right path # Absolute path allow to call get_pathto with the target new_path = str(target.get_pathto(new_abs_path)) + view # Update the record comment.set_parameter(key, new_path) self.set_property('comment', comments)
def init_resource(self, **kw): Folder.init_resource(self, **kw) # Companies self.make_resource('companies', Companies, title={'en': u'Companies', 'fr': u'Sociétés'}) # Contacts self.make_resource('contacts', Contacts, title={'en': u'Contacts', 'fr': u'Contacts'}) # Missions self.make_resource('missions', Missions, title={'en': u'Missions', 'fr': u'Missions'})
def update_links(self, source, target): Folder.update_links(self, source, target) TagsAware.update_links(self, source, target) base = self.get_canonical_path() resources_new2old = get_context().database.resources_new2old base = str(base) old_base = resources_new2old.get(base, base) old_base = Path(old_base) new_base = Path(base) # metadata schema = self.class_schema for key, datatype in schema.iteritems(): if issubclass(datatype, PathDataType) is False: continue value = self.get_property(key) if not value: continue ref = get_reference(value) if ref.scheme: continue path, view = get_path_and_view(ref.path) path = str(old_base.resolve2(path)) if path == source: # Hit the old name # Build the new path with the right path new_path = str(new_base.get_pathto(target)) + view self.set_property(key, Path(new_path)) # comments comments = self.metadata.get_property('comment') or [] for comment in comments: # XXX hardcoded, not typed for key in ('attachment',): value = comment.get_parameter(key) if not value: continue ref = get_reference(value) if ref.scheme: continue path, view = get_path_and_view(ref.path) path = str(old_base.resolve2(path)) if path == source: # Hit the old name # Build the new path with the right path new_path = str(new_base.get_pathto(target)) + view comment.set_parameter(key, new_path) self.set_property('comment', comments)
def get_links(self): links = Folder.get_links(self) # General informations base = self.get_canonical_path() site_root = self.get_site_root() languages = site_root.get_property('website_languages') # We update XHTMLBody links for key, datatype in self.get_metadata_schema().items(): multilingual = getattr(datatype, 'multilingual', False) langs = languages if multilingual is True else [None] if issubclass(datatype, XHTMLBody): for lang in langs: events = self.get_property(key, language=lang) if not events: continue links.extend(_get_links(base, events)) elif issubclass(datatype, PathDataType): # Relative path for lang in langs: path = self.get_property(key, language=lang) if path is None: continue links.append(str(base.resolve2(path))) elif issubclass(datatype, AbsolutePathDataTypeEnumerate): # Absolute path for lang in langs: path = self.get_property(key, language=lang) if path is None: continue links.append(str(path)) # Tagaware ? if isinstance(self, TagsAware): links.extend(TagsAware.get_links(self)) return links
def _get_catalog_values(self): values = Folder._get_catalog_values(self) values['ctime'] = self.get_property('ctime') values['shop_module_review_author'] = self.get_property('author') values['shop_module_review_note'] = self.get_property('note') # XXX description is multilingual in the DB (xml:lang=xx) values['shop_module_review_description'] = self.get_property('description') return values
def get_title(self, language=None, fallback=True): title = self.get_property('title', language=language) if title: return title if fallback: # Fallback to the resource's name return Folder.get_title(self, language) return u''
def _get_catalog_values(self): values = Folder._get_catalog_values(self) values['ctime'] = self.get_property('ctime') values['shop_module_review_author'] = self.get_property('author') values['shop_module_review_note'] = self.get_property('note') # XXX description is multilingual in the DB (xml:lang=xx) values['shop_module_review_description'] = self.get_property( 'description') return values
def get_metadata_schema(cls): return merge_dicts(Folder.get_metadata_schema(), WorkflowAware.get_metadata_schema(), ctime=DateTime, note=Integer(default=0), remote_ip=String, author=String, advantages=Unicode, disadvantages=Unicode, images=String, recommended=RecommandationEnumerate)
def get_metadata_schema(cls): return merge_dicts(Folder.get_metadata_schema(), WorkflowAware.get_metadata_schema(), ctime=DateTime, remote_ip=String, author=String)
def _make_resource(cls, folder, name, **kw): Folder._make_resource(cls, folder, name, **kw) order_class = cls.order_class order_class._make_resource(order_class, folder, '%s/%s' % (name, cls.order_path))
def init_resource(self, **kw): Folder.init_resource(self, **kw) self.make_resource(self.order_path, self.order_table)
def get_metadata_schema(cls): return merge_dicts(Folder.get_metadata_schema(), criterium=Filter_DFT_Enumerate)
def get_metadata_schema(cls): return merge_dicts(Folder.get_metadata_schema(), data=XHTMLBody(multilingual=True), photo=PathDataType)
def get_metadata_schema(cls): return merge_dicts(Folder.get_metadata_schema(), cls.edit_schema)
def _make_resource(cls, folder, name, ctime=None, *args, **kw): ShopModule._make_resource(cls, folder, name, ctime=ctime, *args, **kw) kw = {'title': {'en': 'CGU'}, 'state': 'public'} WebPage._make_resource(WebPage, folder, '%s/cgu' % name, **kw) Folder._make_resource(Folder, folder, '%s/images' % name)
def _make_resource(cls, folder, name, **kw): Folder._make_resource(cls, folder, name, **kw) MultilingualProperties._make_resource(cls, folder, name, **kw)
def _get_catalog_values(self): values = Folder._get_catalog_values(self) values['ctime'] = self.get_property('ctime') return values
def _make_resource(cls, folder, name, *args, **kw): Folder._make_resource(cls, folder, name, *args, **kw) # Order cls = OrderCriterium cls._make_resource(cls, folder, '%s/order' % name)
def get_metadata_schema(cls): return merge_dicts(Folder.get_metadata_schema(), show_title=Boolean)
def init_resource(self, **kw): Folder.init_resource(self, **kw) # Tags (sidebar "tag cloud") self.make_resource(self.tags_box, BoxTags, state='public', title={'en': BoxTags.class_title.gettext()})
def init_resource(self, **kw): Folder.init_resource(self, **kw) # FrontPage self.make_resource(self.default_page, WikiPage, title={'en': u"Front Page"})
def _make_resource(cls, folder, name, *args, **kw): Folder._make_resource(cls, folder, name, *args, **kw) AuthentificationLogs._make_resource(AuthentificationLogs, folder, '%s/authentification_logs' % name, *args, **kw)
def _make_resource(cls, folder, name, *args, **kw): Folder._make_resource(cls, folder, name, **kw) _cls = SideBarAware _cls._make_resource(_cls, folder, name, **kw)
def get_metadata_schema(cls): return merge_dicts(Folder.get_metadata_schema(), base_abspath=CategoriesEnumerate)
def get_catalog_values(self): return merge_dicts(Folder.get_catalog_values(self), workflow_state='public')
def _make_resource(cls, folder, name, *args, **kw): Folder._make_resource(cls, folder, name, *args, **kw) # Order cls = OrderCriterium cls._make_resource(cls, folder, "%s/order" % name)
def get_catalog_values(self): return merge_dicts(Folder.get_catalog_values(self), BoxAware.get_catalog_values(self))
def init_resource(self, **kw): Folder.init_resource(self, **kw) # Sidebar SideBarAware.init_resource(self, **kw) # Create images folder self.make_resource('images', Folder)
def get_metadata_schema(cls): return merge_dicts(Folder.get_metadata_schema(), CrossSellingTable.get_metadata_schema())
def init_resource(self, *args, **kw): Folder.init_resource(self, *args, **kw) # Init a default tax kw = {'title': {'en': u'French tax'}, 'tax_value': decimal('19.6')} self.make_resource('default', Tax, **kw)