예제 #1
0
파일: base.py 프로젝트: hforge/crm
    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))
예제 #2
0
파일: orders.py 프로젝트: hforge/itws
 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()
예제 #3
0
파일: shop.py 프로젝트: hforge/itws
 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'})
예제 #4
0
파일: base.py 프로젝트: hforge/crm
    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)
예제 #5
0
파일: crm.py 프로젝트: hforge/crm
 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'})
예제 #6
0
파일: base.py 프로젝트: hforge/crm
    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)
예제 #7
0
파일: folder.py 프로젝트: hforge/shop
 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
예제 #8
0
파일: review.py 프로젝트: hforge/shop
 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
예제 #9
0
 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''
예제 #10
0
 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
예제 #11
0
 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)
예제 #12
0
파일: review.py 프로젝트: hforge/shop
 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)
예제 #13
0
 def get_metadata_schema(cls):
     return merge_dicts(Folder.get_metadata_schema(),
                        WorkflowAware.get_metadata_schema(),
                        ctime=DateTime,
                        remote_ip=String,
                        author=String)
예제 #14
0
 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))
예제 #15
0
파일: diaporama.py 프로젝트: hforge/itws
 def init_resource(self, **kw):
     Folder.init_resource(self, **kw)
     self.make_resource(self.order_path, self.order_table)
예제 #16
0
 def get_metadata_schema(cls):
     return merge_dicts(Folder.get_metadata_schema(), criterium=Filter_DFT_Enumerate)
예제 #17
0
 def get_metadata_schema(cls):
     return merge_dicts(Folder.get_metadata_schema(),
                        data=XHTMLBody(multilingual=True),
                        photo=PathDataType)
예제 #18
0
 def get_metadata_schema(cls):
     return merge_dicts(Folder.get_metadata_schema(), cls.edit_schema)
예제 #19
0
파일: review.py 프로젝트: hforge/shop
 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)
예제 #20
0
파일: review.py 프로젝트: hforge/shop
 def _make_resource(cls, folder, name, **kw):
     Folder._make_resource(cls, folder, name, **kw)
     MultilingualProperties._make_resource(cls, folder, name, **kw)
예제 #21
0
 def get_metadata_schema(cls):
     return merge_dicts(Folder.get_metadata_schema(),
                        criterium=Filter_DFT_Enumerate)
예제 #22
0
파일: review.py 프로젝트: hforge/shop
 def _get_catalog_values(self):
     values = Folder._get_catalog_values(self)
     values['ctime'] = self.get_property('ctime')
     return values
예제 #23
0
파일: review.py 프로젝트: hforge/shop
 def get_metadata_schema(cls):
     return merge_dicts(Folder.get_metadata_schema(),
                        WorkflowAware.get_metadata_schema(),
                        ctime=DateTime,
                        remote_ip=String,
                        author=String)
예제 #24
0
 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)
예제 #25
0
 def get_metadata_schema(cls):
     return merge_dicts(Folder.get_metadata_schema(),
                        show_title=Boolean)
예제 #26
0
파일: repository.py 프로젝트: hforge/itws
 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()})
예제 #27
0
파일: folder.py 프로젝트: nicolasderam/wiki
 def init_resource(self, **kw):
     Folder.init_resource(self, **kw)
     # FrontPage
     self.make_resource(self.default_page, WikiPage,
             title={'en': u"Front Page"})
예제 #28
0
파일: user.py 프로젝트: hforge/shop
 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)
예제 #29
0
 def _make_resource(cls, folder, name, *args, **kw):
     Folder._make_resource(cls, folder, name, **kw)
     _cls = SideBarAware
     _cls._make_resource(_cls, folder, name, **kw)
예제 #30
0
 def _make_resource(cls, folder, name, **kw):
     Folder._make_resource(cls, folder, name, **kw)
     MultilingualProperties._make_resource(cls, folder, name, **kw)
예제 #31
0
 def get_metadata_schema(cls):
     return merge_dicts(Folder.get_metadata_schema(), base_abspath=CategoriesEnumerate)
예제 #32
0
파일: about.py 프로젝트: hforge/itws
 def get_catalog_values(self):
     return merge_dicts(Folder.get_catalog_values(self),
                        workflow_state='public')
예제 #33
0
 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)
예제 #34
0
파일: user.py 프로젝트: nicolasderam/shop
 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)
예제 #35
0
파일: diaporama.py 프로젝트: hforge/itws
 def get_catalog_values(self):
     return merge_dicts(Folder.get_catalog_values(self),
                        BoxAware.get_catalog_values(self))
예제 #36
0
파일: news.py 프로젝트: nkhine/ztm-ikaaro
 def init_resource(self, **kw):
     Folder.init_resource(self, **kw)
     # Sidebar
     SideBarAware.init_resource(self, **kw)
     # Create images folder
     self.make_resource('images', Folder)
예제 #37
0
 def get_metadata_schema(cls):
     return merge_dicts(Folder.get_metadata_schema(),
                        CrossSellingTable.get_metadata_schema())
예제 #38
0
파일: taxes.py 프로젝트: hforge/itws
 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)
예제 #39
0
 def _get_catalog_values(self):
     values = Folder._get_catalog_values(self)
     values['ctime'] = self.get_property('ctime')
     return values
예제 #40
0
 def get_metadata_schema(cls):
     return merge_dicts(Folder.get_metadata_schema(),
                        base_abspath=CategoriesEnumerate)
예제 #41
0
 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))
예제 #42
0
 def get_metadata_schema(cls):
     return merge_dicts(Folder.get_metadata_schema(), show_title=Boolean)
예제 #43
0
 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)
예제 #44
0
 def get_metadata_schema(cls):
     return merge_dicts(Folder.get_metadata_schema(),
                        CrossSellingTable.get_metadata_schema())
예제 #45
0
파일: sidebar.py 프로젝트: hforge/shop
 def _make_resource(cls, folder, name, *args,  **kw):
     Folder._make_resource(cls, folder, name, **kw)
     _cls = SideBarAware
     _cls._make_resource(_cls, folder, name, **kw)
예제 #46
0
파일: suppliers.py 프로젝트: hforge/shop
 def get_metadata_schema(cls):
     return merge_dicts(Folder.get_metadata_schema(),
                        cls.edit_schema)