Exemplo n.º 1
0
 def design(self):
     if content_type_list.get_one_by_slug(
             self.content.type) == content_type_list.Page:
         return design_page(self.content, self.content_revision)
     if content_type_list.get_one_by_slug(
             self.content.type) == content_type_list.Thread:
         return design_thread(
             self.content,
             self.content_revision,
             self.content_api.get_all([self.content.content_id],
                                      content_type_list.Comment.slug),
         )
Exemplo n.º 2
0
 def design(self):
     # TODO - G.M - 2019-06-13 - find solution to handle properly big file here without having
     # big file in memory. see https://github.com/tracim/tracim/issues/1913
     if content_type_list.get_one_by_slug(
             self.content.type) == content_type_list.Page:
         return design_page(self.content, self.content_revision)
     if content_type_list.get_one_by_slug(
             self.content.type) == content_type_list.Thread:
         return design_thread(
             self.content,
             self.content_revision,
             self.content_api.get_all([self.content.content_id],
                                      content_type_list.Comment.slug),
         )
Exemplo n.º 3
0
 def get_content(
         self,
         context,
         request: TracimRequest,
         hapic_data=None,
 ) -> None:
     """
     Convenient route allowing to get detail about a content without to known routes associated to its content type.
     This route generate a HTTP 302 with the right url
     """
     app_config = request.registry.settings['CFG']
     api = ContentApi(
         current_user=request.current_user,
         session=request.dbsession,
         config=app_config,
     )
     content = api.get_one(
         content_id=hapic_data.path['content_id'],
         content_type=content_type_list.Any_SLUG
     )
     content_type = content_type_list.get_one_by_slug(content.type).slug
     # TODO - G.M - 2018-08-03 - Jsonify redirect response ?
     raise HTTPFound(
         "{base_url}workspaces/{workspace_id}/{content_type}s/{content_id}".format(
             base_url=BASE_API_V2,
             workspace_id=content.workspace_id,
             content_type=content_type,
             content_id=content.content_id,
         )
     )
Exemplo n.º 4
0
    def test_api__get_content_types__ok_200__nominal_case(self):
        """
        Get system content_types list with a registered user.
        """
        self.testapp.authorization = (
            'Basic',
            (
                '*****@*****.**',
                '*****@*****.**'
            )
        )
        res = self.testapp.get('/api/v2/system/content_types', status=200)
        res = res.json_body
        assert len(res) == len(content_type_list.endpoint_allowed_types_slug())
        content_types = content_type_list.endpoint_allowed_types_slug()

        for counter, content_type_slug in enumerate(content_types):
            content_type = content_type_list.get_one_by_slug(content_type_slug)
            assert res[counter]['slug'] == content_type.slug
            assert res[counter]['fa_icon'] == content_type.fa_icon
            assert res[counter]['hexcolor'] == content_type.hexcolor
            assert res[counter]['label'] == content_type.label
            assert res[counter]['creation_label'] == content_type.creation_label
            for status_counter, status in enumerate(content_type.available_statuses):
                assert res[counter]['available_statuses'][status_counter]['fa_icon'] == status.fa_icon  # nopep8
                assert res[counter]['available_statuses'][status_counter]['global_status'] == status.global_status  # nopep8
                assert res[counter]['available_statuses'][status_counter]['slug'] == status.slug  # nopep8
                assert res[counter]['available_statuses'][status_counter]['hexcolor'] == status.hexcolor  # nopep8
Exemplo n.º 5
0
 def get_content(
     self,
     context,
     request: TracimRequest,
     hapic_data=None,
 ) -> None:
     """
     Convenient route allowing to get detail about a content without to known routes associated to its content type.
     This route generate a HTTP 302 with the right url
     """
     app_config = request.registry.settings['CFG']
     api = ContentApi(
         current_user=request.current_user,
         session=request.dbsession,
         config=app_config,
     )
     content = api.get_one(content_id=hapic_data.path['content_id'],
                           content_type=content_type_list.Any_SLUG)
     content_type = content_type_list.get_one_by_slug(content.type).slug
     # TODO - G.M - 2018-08-03 - Jsonify redirect response ?
     raise HTTPFound(
         "{base_url}workspaces/{workspace_id}/{content_type}s/{content_id}".
         format(
             base_url=BASE_API_V2,
             workspace_id=content.workspace_id,
             content_type=content_type,
             content_id=content.content_id,
         ))
Exemplo n.º 6
0
    def test_api__get_content_types__ok_200__nominal_case(self):
        """
        Get system content_types list with a registered user.
        """
        self.testapp.authorization = ('Basic', ('*****@*****.**',
                                                '*****@*****.**'))
        res = self.testapp.get('/api/v2/system/content_types', status=200)
        res = res.json_body
        assert len(res) == len(content_type_list.endpoint_allowed_types_slug())
        content_types = content_type_list.endpoint_allowed_types_slug()

        for counter, content_type_slug in enumerate(content_types):
            content_type = content_type_list.get_one_by_slug(content_type_slug)
            assert res[counter]['slug'] == content_type.slug
            assert res[counter]['fa_icon'] == content_type.fa_icon
            assert res[counter]['hexcolor'] == content_type.hexcolor
            assert res[counter]['label'] == content_type.label
            assert res[counter][
                'creation_label'] == content_type.creation_label
            for status_counter, status in enumerate(
                    content_type.available_statuses):
                assert res[counter]['available_statuses'][status_counter][
                    'fa_icon'] == status.fa_icon  # nopep8
                assert res[counter]['available_statuses'][status_counter][
                    'global_status'] == status.global_status  # nopep8
                assert res[counter]['available_statuses'][status_counter][
                    'slug'] == status.slug  # nopep8
                assert res[counter]['available_statuses'][status_counter][
                    'hexcolor'] == status.hexcolor  # nopep8
Exemplo n.º 7
0
    def test_api__get_content_types__ok_200__nominal_case(self):
        """
        Get system content_types list with a registered user.
        """
        self.testapp.authorization = ("Basic", ("*****@*****.**",
                                                "*****@*****.**"))
        res = self.testapp.get("/api/v2/system/content_types", status=200)
        res = res.json_body
        assert len(res) == len(content_type_list.endpoint_allowed_types_slug())
        content_types = content_type_list.endpoint_allowed_types_slug()

        for counter, content_type_slug in enumerate(content_types):
            content_type = content_type_list.get_one_by_slug(content_type_slug)
            assert res[counter]["slug"] == content_type.slug
            assert res[counter]["fa_icon"] == content_type.fa_icon
            assert res[counter]["hexcolor"] == content_type.hexcolor
            assert res[counter]["label"] == content_type.label
            assert res[counter][
                "creation_label"] == content_type.creation_label
            for status_counter, status in enumerate(
                    content_type.available_statuses):
                assert (res[counter]["available_statuses"][status_counter]
                        ["fa_icon"] == status.fa_icon)
                assert (res[counter]["available_statuses"][status_counter]
                        ["global_status"] == status.global_status)
                assert res[counter]["available_statuses"][status_counter][
                    "slug"] == status.slug
                assert (res[counter]["available_statuses"][status_counter]
                        ["hexcolor"] == status.hexcolor)
Exemplo n.º 8
0
 def content_types(self, context, request: TracimRequest, hapic_data=None):
     """
     Get list of alls content types availables in this tracim instance.
     """
     content_types_slugs = content_type_list.endpoint_allowed_types_slug()
     content_types = [content_type_list.get_one_by_slug(slug) for slug in content_types_slugs]
     return content_types
Exemplo n.º 9
0
 def check(self, tracim_context: TracimContext) -> bool:
     content = tracim_context.current_content
     current_content_type_slug = content_type_list.get_one_by_slug(
         content.type).slug
     if current_content_type_slug in self.allowed_content_type_list:
         return True
     raise ContentTypeNotAllowed()
Exemplo n.º 10
0
 def design(self):
     if (
         content_type_list.get_one_by_slug(self.content.type) ==
         content_type_list.Page
     ):
         return design_page(self.content, self.content_revision)
     if (
         content_type_list.get_one_by_slug(self.content.type) ==
         content_type_list.Thread
     ):
         return design_thread(
             self.content,
             self.content_revision,
             self.content_api.get_all(
                 [self.content.content_id], content_type_list.Comment.slug
             )
         )
Exemplo n.º 11
0
 def wrapper(self, context,
             request: 'TracimRequest') -> typing.Callable:
     content = request.current_content
     current_content_type_slug = content_type_list.get_one_by_slug(
         content.type).slug  # nopep8
     if current_content_type_slug in content_types_slug:
         return func(self, context, request)
     raise ContentTypeNotAllowed()
Exemplo n.º 12
0
 def content_types(self, context, request: TracimRequest, hapic_data=None):
     """
     Get list of alls content types availables in this tracim instance.
     """
     content_types_slugs = content_type_list.endpoint_allowed_types_slug()
     content_types = [
         content_type_list.get_one_by_slug(slug)
         for slug in content_types_slugs
     ]
     return content_types
Exemplo n.º 13
0
 def content_types(self, context, request: TracimRequest, hapic_data=None):
     """
     Get list of alls content types availables in this tracim instance.
     """
     app_config = request.registry.settings["CFG"]  # type: CFG
     content_types_slugs = content_type_list.endpoint_allowed_types_slug()
     content_types = [content_type_list.get_one_by_slug(slug) for slug in content_types_slugs]
     content_types_in_context = [
         content_type_list.get_content_type_in_context(content_type, app_config)
         for content_type in content_types
     ]
     return content_types_in_context
Exemplo n.º 14
0
 def get_content_from_workspace(self,
                                context,
                                request: TracimRequest,
                                hapic_data=None) -> None:
     """
     Convenient route allowing to get detail about a content without to known routes associated to its content type.
     This route generate a HTTP 302 with the right url
     """
     content = request.current_content
     content_type = content_type_list.get_one_by_slug(content.type).slug
     # TODO - G.M - 2018-08-03 - Jsonify redirect response ?
     raise HTTPFound(
         "{base_url}workspaces/{workspace_id}/{content_type}s/{content_id}".
         format(
             base_url=BASE_API,
             workspace_id=content.workspace_id,
             content_type=content_type,
             content_id=content.content_id,
         ))
Exemplo n.º 15
0
 def _get_content_type(self, content_type_slug_fetcher):
     content_type_slug = content_type_slug_fetcher()
     return content_type_list.get_one_by_slug(content_type_slug)
Exemplo n.º 16
0
 def content_type(self) -> str:
     content_type = content_type_list.get_one_by_slug(self.content.type)
     return content_type.slug
Exemplo n.º 17
0
 def content_type(self) -> str:
     return content_type_list.get_one_by_slug(self.revision.type).slug
Exemplo n.º 18
0
 def content_type(self) -> str:
     content_type = content_type_list.get_one_by_slug(self.content.type)
     return content_type.slug
Exemplo n.º 19
0
 def content_type(self) -> str:
     return content_type_list.get_one_by_slug(self.revision.type).slug
Exemplo n.º 20
0
 def _get_content_type(
     self,
     content_type_slug_fetcher: typing.Callable[[],
                                                str]) -> TracimContentType:
     content_type_slug = content_type_slug_fetcher()
     return content_type_list.get_one_by_slug(content_type_slug)
Exemplo n.º 21
0
 def _get_content_type(self, content_type_slug_fetcher):
     content_type_slug = content_type_slug_fetcher()
     return content_type_list.get_one_by_slug(content_type_slug)