def test_lockdata(self): from datetime import datetime from karl.utilities import lock past = datetime(1985, 1, 1, 0, 0, 1) now = datetime(1985, 1, 1, 0, 0, 10) context = karltesting.DummyModel() request = testing.DummyRequest() site = karltesting.DummyRoot() site['bar'] = context lock.lock(context, 'foo', past) lockdata = lock.lock_info_for_view(context, request, now) self.failUnless(lockdata['is_locked'])
def test_lockdata(self): from datetime import datetime from karl.utilities import lock past = datetime(1985, 1, 1, 0, 0, 1) now = datetime(1985, 1, 1, 0, 0, 10) context = karltesting.DummyModel() request = testing.DummyRequest() site = karltesting.DummyRoot() site['bar'] = context lock.lock(context, 'foo', past) lockdata = lock.lock_info_for_view(context, request, now) self.failUnless(lockdata['is_locked'])
def show_wikipage_view(context, request): layout = request.layout_manager.layout is_front_page = (context.__name__ == 'front_page') if is_front_page: community = find_interface(context, ICommunity) layout.page_title = '%s Community Wiki Page' % community.title backto = False else: layout.page_title = context.title backto = { 'href': resource_url(context.__parent__, request), 'title': context.__parent__.title, } actions = [] if has_permission('edit', context, request): actions.append(('Edit', resource_url(context, request, 'edit.html'))) if has_permission('delete', context, request) and not is_front_page: actions.append(('Delete', resource_url(context, request, 'delete.html'))) repo = find_repo(context) show_trash = False if not find_interface(context, IIntranets): if repo is not None and has_permission('edit', context, request): actions.append( ('History', resource_url(context, request, 'history.html'))) show_trash = True if has_permission('administer', context, request): actions.append( ('Advanced', resource_url(context, request, 'advanced.html'))) api = TemplateAPI(context, request, layout.page_title) client_json_data = dict(tagbox=get_tags_client_data(context, request), ) panel_data = layout.head_data['panel_data'] panel_data['tagbox'] = client_json_data['tagbox'] layout.add_portlet('recent_activity') wiki = find_interface(context, IWiki) feed_url = resource_url(wiki, request, "atom.xml") return dict( api=api, actions=actions, head_data=convert_to_script(client_json_data), feed_url=feed_url, backto=backto, is_front_page=is_front_page, show_trash=show_trash, lock_info=lock.lock_info_for_view(context, request), )
def show_wikipage_view(context, request): layout = request.layout_manager.layout is_front_page = (context.__name__ == 'front_page') if is_front_page: community = find_interface(context, ICommunity) layout.page_title = '%s Community Wiki Page' % community.title backto = False else: layout.page_title = context.title backto = { 'href': resource_url(context.__parent__, request), 'title': context.__parent__.title, } actions = [] if has_permission('edit', context, request): actions.append(('Edit', resource_url(context, request, 'edit.html'))) if has_permission('delete', context, request) and not is_front_page: actions.append(('Delete', resource_url(context, request, 'delete.html'))) repo = find_repo(context) show_trash = False if not find_interface(context, IIntranets): if repo is not None and has_permission('edit', context, request): actions.append(('History', resource_url(context, request, 'history.html'))) show_trash = True if has_permission('administer', context, request): actions.append(('Advanced', resource_url(context, request, 'advanced.html'))) api = TemplateAPI(context, request, layout.page_title) client_json_data = dict( tagbox = get_tags_client_data(context, request), ) panel_data = layout.head_data['panel_data'] panel_data['tagbox'] = client_json_data['tagbox'] layout.add_portlet('recent_activity') wiki = find_interface(context, IWiki) feed_url = resource_url(wiki, request, "atom.xml") return dict( api=api, actions=actions, head_data=convert_to_script(client_json_data), feed_url=feed_url, backto=backto, is_front_page=is_front_page, show_trash=show_trash, lock_info=lock.lock_info_for_view(context, request), )
def show_history(context, request, tz=None): repo = find_repo(context) profiles = find_profiles(context) # downloading files using ajax shows information bar in IE # We need to disable that if context is a file use_ajax = True preview_view = 'preview.html' if ICommunityFile.providedBy(context): use_ajax = False preview_view = 'download_preview' def display_record(record): editor = profiles[record.user] return { 'date': format_local_date(record.archive_time, tz), 'editor': { 'name': editor.title, 'url': resource_url(editor, request), }, 'preview_url': resource_url(context, request, preview_view, query={'version_num': str(record.version_num)}), 'restore_url': resource_url(context, request, 'revert', query={'version_num': str(record.version_num)}), 'is_current': record.current_version == record.version_num, } # newest to oldest history = map(display_record, repo.history(context.docid)) page_title = 'History for %s' % context.title backto = {'href': resource_url(context, request), 'title': context.title} return { 'api': TemplateAPI(context, request, page_title), 'history': history, 'use_ajax': use_ajax, 'backto': backto, 'lock_info': lock_info_for_view(context, request), }
def __call__(self): if not lock.is_locked(self.context): lock.lock(self.context, self.userid) page_title = 'Edit %s' % self.context.title api = TemplateAPI(self.context, self.request, page_title) # prepare client data api.karl_client_data['text'] = dict( enable_wiki_plugin = True, enable_imagedrawer_upload = True, ) return {'api':api, 'actions':(), 'lock_info':lock.lock_info_for_view(self.context, self.request), }
def __call__(self): if not lock.is_locked(self.context): lock.lock(self.context, self.userid) page_title = 'Edit %s' % self.context.title api = TemplateAPI(self.context, self.request, page_title) # prepare client data api.karl_client_data['text'] = dict( enable_wiki_plugin=True, enable_imagedrawer_upload=True, ) return { 'api': api, 'actions': (), 'lock_info': lock.lock_info_for_view(self.context, self.request), }
def show_wikipage_view(context, request): is_front_page = (context.__name__ == 'front_page') if is_front_page: community = find_interface(context, ICommunity) page_title = '%s Community Wiki Page' % community.title backto = False else: page_title = context.title backto = { 'href': model_url(context.__parent__, request), 'title': context.__parent__.title, } actions = [] if has_permission('edit', context, request): actions.append(('Edit', 'edit.html')) if has_permission('delete', context, request) and not is_front_page: actions.append(('Delete', 'delete.html')) repo = find_repo(context) if repo is not None and has_permission('edit', context, request): actions.append(('History', 'history.html')) show_trash = True else: show_trash = False if has_permission('administer', context, request): actions.append(('Advanced', 'advanced.html')) api = TemplateAPI(context, request, page_title) client_json_data = convert_to_script(dict( tagbox = get_tags_client_data(context, request), )) wiki = find_interface(context, IWiki) feed_url = model_url(wiki, request, "atom.xml") return dict( api=api, actions=actions, head_data=client_json_data, feed_url=feed_url, backto=backto, is_front_page=is_front_page, show_trash=show_trash, lock_info=lock.lock_info_for_view(context, request), )
def show_history(context, request, tz=None): repo = find_repo(context) profiles = find_profiles(context) # downloading files using ajax shows information bar in IE # We need to disable that if context is a file use_ajax = True preview_view = 'preview.html' if ICommunityFile.providedBy(context): use_ajax = False preview_view = 'download_preview' def display_record(record): editor = profiles[record.user] return { 'date': format_local_date(record.archive_time, tz), 'editor': { 'name': editor.title, 'url': resource_url(editor, request), }, 'preview_url': resource_url( context, request, preview_view, query={'version_num': str(record.version_num)}), 'restore_url': resource_url( context, request, 'revert', query={'version_num': str(record.version_num)}), 'is_current': record.current_version == record.version_num, } # newest to oldest history = map(display_record, repo.history(context.docid)) page_title = 'History for %s' % context.title backto = { 'href': resource_url(context, request), 'title': context.title } return { 'api': TemplateAPI(context, request, page_title), 'history': history, 'use_ajax': use_ajax, 'backto': backto, 'lock_info': lock_info_for_view(context, request), }
def show_wikitoc_view(context, request): is_front_page = (context.__name__ == 'front_page') if is_front_page: community = find_interface(context, ICommunity) page_title = '%s Community Wiki Page' % community.title backto = False else: page_title = context.title backto = { 'href': resource_url(context.__parent__, request), 'title': context.__parent__.title, } actions = [] api = TemplateAPI(context, request, page_title) wikitoc_data = get_wikitoc_data(context, request) page_data = dict( wikitoc = wikitoc_data, ) # ... for ux1 client_json_data = convert_to_script(page_data) # ... for ux2 request.layout_manager.layout.head_data['page_data'] = page_data wiki = find_interface(context, IWiki) feed_url = resource_url(wiki, request, "atom.xml") repo = find_repo(context) show_trash = repo is not None and has_permission('edit', context, request) return dict(api=api, actions=actions, head_data=client_json_data, feed_url=feed_url, backto=backto, lock_info=lock.lock_info_for_view(context, request), show_trash=show_trash, )
def show_wikitoc_view(context, request): is_front_page = (context.__name__ == 'front_page') if is_front_page: community = find_interface(context, ICommunity) page_title = '%s Community Wiki Page' % community.title backto = False else: page_title = context.title backto = { 'href': resource_url(context.__parent__, request), 'title': context.__parent__.title, } actions = [] api = TemplateAPI(context, request, page_title) wikitoc_data = get_wikitoc_data(context, request) page_data = dict(wikitoc=wikitoc_data, ) # ... for ux1 client_json_data = convert_to_script(page_data) # ... for ux2 request.layout_manager.layout.head_data['page_data'] = page_data wiki = find_interface(context, IWiki) feed_url = resource_url(wiki, request, "atom.xml") repo = find_repo(context) show_trash = repo is not None and has_permission('edit', context, request) return dict( api=api, actions=actions, head_data=client_json_data, feed_url=feed_url, backto=backto, lock_info=lock.lock_info_for_view(context, request), show_trash=show_trash, )
def __call__(self): if not lock.is_locked(self.context): lock.lock(self.context, self.userid) page_title = 'Edit %s' % self.context.title api = TemplateAPI(self.context, self.request, page_title) # prepare client data # ux1 api.karl_client_data['text'] = dict( enable_wiki_plugin = True, enable_imagedrawer_upload = True, ) # ux2 layout = self.request.layout_manager.layout layout.head_data['panel_data']['tinymce'] = api.karl_client_data['text'] return {'api':api, 'actions':(), 'lock_info':lock.lock_info_for_view(self.context, self.request), }
def show_history(context, request): repo = find_repo(context) profiles = find_profiles(context) def display_record(record): editor = profiles[record.user] return { 'date': format_local_date(record.archive_time), 'editor': { 'name': editor.title, 'url': model_url(editor, request), }, 'preview_url': model_url( context, request, 'preview.html', query={'version_num': str(record.version_num)}), 'restore_url': model_url( context, request, 'revert', query={'version_num': str(record.version_num)}), 'is_current': record.current_version == record.version_num, } try: history = repo.history(context.docid) except: history = [] history = map(display_record, history) history.reverse() page_title = 'History for %s' % context.title backto = { 'href': model_url(context, request), 'title': context.title } return { 'api': TemplateAPI(context, request, page_title), 'history': history, 'backto': backto, 'lock_info': lock_info_for_view(context, request), }
def __call__(self): if not lock.is_locked(self.context): lock.lock(self.context, self.userid) page_title = 'Edit %s' % self.context.title api = TemplateAPI(self.context, self.request, page_title) # prepare client data # ux1 api.karl_client_data['text'] = dict( enable_wiki_plugin=True, enable_imagedrawer_upload=True, ) # ux2 layout = self.request.layout_manager.layout layout.head_data['panel_data']['tinymce'] = api.karl_client_data[ 'text'] return { 'api': api, 'actions': (), 'lock_info': lock.lock_info_for_view(self.context, self.request), }