def __init__(self, context, request): self.context = context self.request = request self.api = TemplateAPI(self.context, self.request, "View %s" % context.title) layout_provider = get_layout_provider(self.context, self.request) self.layout = layout_provider('generic') self.photo_thumb_size = (220,150)
def show_forum_view(context, request): page_title = context.title api = request.api actions = [] if has_permission('create', context, request): actions.append(('Add Forum Topic', 'add_forum_topic.html')) if has_permission('edit', context, request): actions.append(('Edit', 'edit.html')) if has_permission('delete', context, request): actions.append(('Delete', 'delete.html')) profiles = find_profiles(context) appdates = getUtility(IAppDates) topic_batch = get_topic_batch(context, request) topic_entries = topic_batch['entries'] topics = [] for topic in topic_entries: D = {} profile = profiles.get(topic.creator) posted_by = getattr(profile, 'title', None) date = appdates(topic.created, 'longform') D['url'] = model_url(topic, request) D['title'] = topic.title D['posted_by'] = posted_by D['date'] = date D['number_of_comments'] = len(topic['comments']) topics.append(D) # In the intranet side, the backlinks should go to the show_forums # view (the default) forums = context.__parent__ backto = { 'href': model_url(forums, request), 'title': forums.title, } # Get a layout layout_provider = get_layout_provider(context, request) layout = layout_provider('generic') return render_template_to_response( 'templates/show_forum.pt', api = api, actions = actions, title = context.title, topics = topics, batch_info = topic_batch, backto=backto, layout=layout, )
def show_forum_topic_view(context, request): post_url = model_url(context, request, "comments", "add_comment.html") page_title = context.title actions = [] if has_permission('edit', context, request): actions.append(('Edit', 'edit.html')) if has_permission('delete', context, request): actions.append(('Delete', 'delete.html')) api = request.api api.page_title = page_title byline_info = getMultiAdapter((context, request), IBylineInfo) forum = find_interface(context, IForum) backto = { 'href': model_url(forum, request), 'title': forum.title, } # provide client data for rendering current tags in the tagbox client_json_data = dict( tagbox = get_tags_client_data(context, request), ) # Get a layout layout_provider = get_layout_provider(context, request) layout = layout_provider('community') if support_attachments(context): attachments = fetch_attachments(context['attachments'], request) else: attachments = () # enable imagedrawer for adding forum replies (comments) api.karl_client_data['text'] = dict( enable_imagedrawer_upload = True, ) return render_template_to_response( 'templates/show_forum_topic.pt', api=api, actions=actions, comments=comments_to_display(request), attachments=attachments, formfields=api.formfields, post_url=post_url, byline_info=byline_info, head_data=convert_to_script(client_json_data), backto=backto, layout=layout, comment_form={}, )
def show_comment_view(context, request): page_title = "Comment on " + context.title api = request.api api.page_title = page_title actions = [] if has_permission('edit', context, request): actions.append(('Edit', 'edit.html')) if has_permission('delete', context, request): actions.append(('Delete', 'delete.html')) byline_info = getMultiAdapter((context, request), IBylineInfo) container = find_supported_interface(context, api.supported_comment_interfaces()) if not container: err_msg = 'unsupported interface for show_comment_view found for ' \ 'context: %s' % context log.warn(err_msg) exception_response = ExceptionResponse(err_msg) exception_response.status = '500 Internal Server Error' return exception_response backto = { 'href': model_url(container, request), 'title': container.title, } # Get a layout layout_provider = get_layout_provider(context, request) layout = layout_provider('community') if support_attachments(context): attachments = fetch_attachments(context, request) else: attachments = () return render_template_to_response( 'templates/show_comment.pt', api=api, actions=actions, byline_info=byline_info, attachments=attachments, backto=backto, layout=layout, )
def delete_community_view(context, request): page_title = 'Delete ' + context.title api = request.api api.page_title = page_title confirm = request.params.get('confirm', False) if confirm == '1': name = context.__name__ del context.__parent__[name] location = model_url(context.__parent__, request) return HTTPFound(location=location) # Get a layout layout_provider = get_layout_provider(context, request) layout = layout_provider('community') return render_template_to_response( 'templates/delete_resource.pt', api=api, layout=layout, num_children=0, )
def __init__(self, context, request): self.context = context self.request = request layout_provider = get_layout_provider(self.context, self.request) self.layout = layout_provider('generic')