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), )
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), )
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, ) )
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
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, ))
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
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)
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
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()
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 ) )
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()
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
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
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, ))
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)
def content_type(self) -> str: content_type = content_type_list.get_one_by_slug(self.content.type) return content_type.slug
def content_type(self) -> str: return content_type_list.get_one_by_slug(self.revision.type).slug
def content_type(self) -> str: content_type = content_type_list.get_one_by_slug(self.content.type) return content_type.slug
def content_type(self) -> str: return content_type_list.get_one_by_slug(self.revision.type).slug
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)
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)