def get_upload_widget(self): ctx = {} if self.can_upload: ctx.update(handle_upload_form(self.request, self.tp)) ctx.update( {'display_download': True, 'has_sidebar': True}) return ctx
def get_upload_widget(self, project): ctx = {} has_upload = ("import_export" in settings.INSTALLED_APPS and self.request.user.is_authenticated() and check_permission('translate', self.request)) if has_upload: ctx.update(handle_upload_form(self.request, project)) ctx.update({'display_download': True, 'has_sidebar': True}) return ctx
def get_upload_widget(self, project): ctx = {} has_upload = ( "import_export" in settings.INSTALLED_APPS and self.request.user.is_authenticated() and check_permission('translate', self.request)) if has_upload: ctx.update(handle_upload_form(self.request, project)) ctx.update( {'display_download': True, 'has_sidebar': True}) return ctx
def get_upload_widget(self): ctx = {} has_upload = ("import_export" in settings.INSTALLED_APPS and self.request.user.is_authenticated() and check_permission('translate', self.request)) if has_upload: if "po" in self.project.filetype_tool.valid_extensions: ctx.update( handle_upload_form(self.request, self.project, self.language)) ctx.update({'display_download': True, 'has_sidebar': True}) return ctx
def get_upload_widget(self): ctx = {} has_upload = ( "import_export" in settings.INSTALLED_APPS and self.request.user.is_authenticated() and check_permission('translate', self.request)) if has_upload: if "po" in self.project.filetype_tool.valid_extensions: ctx.update(handle_upload_form( self.request, self.project, self.language)) ctx.update( {'display_download': True, 'has_sidebar': True}) return ctx
def overview(request, translation_project, dir_path, filename=None): project = translation_project.project language = translation_project.language directory = request.directory store = request.store # TODO: cleanup and refactor, retrieve from cache try: ann_virtual_path = 'announcements/projects/' + project.code announcement = StaticPage.objects.live(request.user).get( virtual_path=ann_virtual_path, ) except StaticPage.DoesNotExist: announcement = None has_announcement = announcement is not None has_sidebar = has_announcement is_sidebar_open = True stored_mtime = None new_mtime = None cookie_data = {} if SIDEBAR_COOKIE_NAME in request.COOKIES: json_str = unquote(request.COOKIES[SIDEBAR_COOKIE_NAME]) cookie_data = json.loads(json_str) if 'isOpen' in cookie_data: is_sidebar_open = cookie_data['isOpen'] if project.code in cookie_data: stored_mtime = cookie_data[project.code] if has_announcement: ann_mtime = dateformat.format(announcement.modified_on, 'U') if ann_mtime != stored_mtime: is_sidebar_open = True new_mtime = ann_mtime ctx = get_overview_context(request) # TODO improve plugin logic if "import_export" in settings.INSTALLED_APPS and request.user.is_authenticated( ): from import_export.views import handle_upload_form from pootle_app.models.permissions import check_permission ctx.update(handle_upload_form(request)) has_download = (check_permission('translate', request) or check_permission('suggest', request)) ctx.update({ 'display_download': has_download, }) has_sidebar = True if store is None: table_fields = [ 'name', 'progress', 'total', 'need-translation', 'suggestions', 'critical', 'last-updated', 'activity' ] ctx.update({ 'table': { 'id': 'tp', 'fields': table_fields, 'headings': get_table_headings(table_fields), 'parent': get_parent(directory), 'items': get_children(directory), } }) ctx.update({ 'translation_project': translation_project, 'project': project, 'language': language, 'stats': jsonify(request.resource_obj.get_stats()), 'browser_extends': 'translation_projects/base.html', 'announcement': announcement, 'is_sidebar_open': is_sidebar_open, 'has_sidebar': has_sidebar, }) response = render(request, 'browser/overview.html', ctx) if new_mtime is not None: cookie_data[project.code] = new_mtime cookie_data = quote(json.dumps(cookie_data)) response.set_cookie(SIDEBAR_COOKIE_NAME, cookie_data) return response
def overview(request, translation_project, dir_path, filename=None): project = translation_project.project language = translation_project.language directory = request.directory store = request.store is_admin = check_permission('administrate', request) # TODO: cleanup and refactor, retrieve from cache try: ann_virtual_path = 'announcements/projects/' + project.code announcement = StaticPage.objects.live(request.user).get( virtual_path=ann_virtual_path, ) except StaticPage.DoesNotExist: announcement = None has_announcement = announcement is not None has_sidebar = has_announcement is_sidebar_open = True stored_mtime = None new_mtime = None cookie_data = {} if SIDEBAR_COOKIE_NAME in request.COOKIES: json_str = unquote(request.COOKIES[SIDEBAR_COOKIE_NAME]) cookie_data = json.loads(json_str) if 'isOpen' in cookie_data: is_sidebar_open = cookie_data['isOpen'] if project.code in cookie_data: stored_mtime = cookie_data[project.code] if has_announcement: ann_mtime = dateformat.format(announcement.modified_on, 'U') if ann_mtime != stored_mtime: is_sidebar_open = True new_mtime = ann_mtime ctx = get_overview_context(request) # TODO improve plugin logic if "import_export" in settings.INSTALLED_APPS and request.user.is_authenticated(): from import_export.views import handle_upload_form ctx.update(handle_upload_form(request)) has_download = (check_permission('translate', request) or check_permission('suggest', request)) ctx.update({ 'display_download': has_download, }) has_sidebar = True stats = request.resource_obj.get_stats() if store is None: table_fields = ['name', 'progress', 'total', 'need-translation', 'suggestions', 'critical', 'last-updated', 'activity'] ctx.update({ 'table': { 'id': 'tp', 'fields': table_fields, 'headings': get_table_headings(table_fields), 'parent': get_parent(directory), 'items': get_children(directory), } }) vfolders = get_vfolders(directory) if len(vfolders) > 0: table_fields = ['name', 'priority', 'progress', 'total', 'need-translation', 'suggestions', 'critical', 'activity'] ctx.update({ 'vfolders': { 'id': 'vfolders', 'fields': table_fields, 'headings': get_table_headings(table_fields), 'items': get_vfolders(directory, all_vfolders=is_admin), }, }) #FIXME: set vfolders stats in the resource, don't inject them here. stats['vfolders'] = VirtualFolder.get_stats_for( directory.pootle_path, all_vfolders=is_admin ) ctx.update({ 'translation_project': translation_project, 'project': project, 'language': language, 'stats': jsonify(stats), 'is_admin': is_admin, 'browser_extends': 'translation_projects/base.html', 'announcement': announcement, 'is_sidebar_open': is_sidebar_open, 'has_sidebar': has_sidebar, }) response = render(request, 'browser/overview.html', ctx) if new_mtime is not None: cookie_data[project.code] = new_mtime cookie_data = quote(json.dumps(cookie_data)) response.set_cookie(SIDEBAR_COOKIE_NAME, cookie_data) return response
def browse(request, translation_project, dir_path, filename=None): project = translation_project.project language = translation_project.language directory = request.directory store = request.store is_admin = check_permission('administrate', request) ctx, cookie_data = get_sidebar_announcements_context( request, (project, language, translation_project, ), ) ctx.update(get_browser_context(request)) # TODO improve plugin logic if "import_export" in settings.INSTALLED_APPS: if request.user.is_authenticated(): if check_permission('translate', request): ctx.update(handle_upload_form(request, project)) ctx.update({'display_download': True, 'has_sidebar': True}) stats = request.resource_obj.get_stats() if store is None: table_fields = ['name', 'progress', 'total', 'need-translation', 'suggestions', 'critical', 'last-updated', 'activity'] ctx.update({ 'table': { 'id': 'tp', 'fields': table_fields, 'headings': get_table_headings(table_fields), 'items': get_children(directory), } }) if 'virtualfolder' in settings.INSTALLED_APPS: vfolders = get_vfolders(directory, all_vfolders=is_admin) if len(vfolders) > 0: table_fields = ['name', 'priority', 'progress', 'total', 'need-translation', 'suggestions', 'critical', 'last-updated', 'activity'] ctx.update({ 'vfolders': { 'id': 'vfolders', 'fields': table_fields, 'headings': get_table_headings(table_fields), 'items': vfolders, }, }) # FIXME: set vfolders stats in the resource, don't inject them # here. stats['vfolders'] = {} for vfolder_treeitem in directory.vf_treeitems.iterator(): if request.user.is_superuser or vfolder_treeitem.is_visible: stats['vfolders'][vfolder_treeitem.code] = \ vfolder_treeitem.get_stats(include_children=False) ctx.update({ 'parent': get_parent(directory if store is None else store), 'translation_project': translation_project, 'project': project, 'language': language, 'stats': jsonify(stats), 'is_admin': is_admin, 'is_store': store is not None, 'browser_extends': 'translation_projects/base.html', }) response = render(request, 'browser/index.html', ctx) if cookie_data: response.set_cookie(SIDEBAR_COOKIE_NAME, cookie_data) return response
def browse(request, translation_project, dir_path, filename=None): project = translation_project.project language = translation_project.language directory = request.directory store = request.store is_admin = check_permission('administrate', request) ctx, cookie_data = get_sidebar_announcements_context( request, ( project, language, translation_project, ), ) ctx.update(get_browser_context(request)) # TODO improve plugin logic if "import_export" in settings.INSTALLED_APPS: if request.user.is_authenticated(): if check_permission('translate', request): ctx.update(handle_upload_form(request, project)) ctx.update({'display_download': True, 'has_sidebar': True}) stats = request.resource_obj.get_stats() if store is None: table_fields = [ 'name', 'progress', 'total', 'need-translation', 'suggestions', 'critical', 'last-updated', 'activity' ] ctx.update({ 'table': { 'id': 'tp', 'fields': table_fields, 'headings': get_table_headings(table_fields), 'items': get_children(directory), } }) if 'virtualfolder' in settings.INSTALLED_APPS: vfolders = get_vfolders(directory, all_vfolders=is_admin) if len(vfolders) > 0: table_fields = [ 'name', 'priority', 'progress', 'total', 'need-translation', 'suggestions', 'critical', 'last-updated', 'activity' ] ctx.update({ 'vfolders': { 'id': 'vfolders', 'fields': table_fields, 'headings': get_table_headings(table_fields), 'items': vfolders, }, }) # FIXME: set vfolders stats in the resource, don't inject them # here. stats['vfolders'] = {} for vfolder_treeitem in directory.vf_treeitems.iterator(): if request.user.is_superuser or vfolder_treeitem.is_visible: stats['vfolders'][vfolder_treeitem.code] = \ vfolder_treeitem.get_stats(include_children=False) ctx.update({ 'parent': get_parent(directory if store is None else store), 'translation_project': translation_project, 'project': project, 'language': language, 'stats': jsonify(stats), 'is_admin': is_admin, 'is_store': store is not None, 'browser_extends': 'translation_projects/base.html', }) response = render(request, 'browser/index.html', ctx) if cookie_data: response.set_cookie(SIDEBAR_COOKIE_NAME, cookie_data) return response
def overview(request, translation_project, dir_path, filename=None): project = translation_project.project language = translation_project.language directory = request.directory store = request.store is_admin = check_permission('administrate', request) ctx, cookie_data = get_sidebar_announcements_context(request, project.code, language.code) ctx.update(get_overview_context(request)) # TODO improve plugin logic if "import_export" in settings.INSTALLED_APPS and request.user.is_authenticated(): from import_export.views import handle_upload_form ctx.update(handle_upload_form(request)) has_download = (check_permission('translate', request) or check_permission('suggest', request)) ctx.update({ 'display_download': has_download, 'has_sidebar': True, }) stats = request.resource_obj.get_stats() if store is None: table_fields = ['name', 'progress', 'total', 'need-translation', 'suggestions', 'critical', 'last-updated', 'activity'] ctx.update({ 'table': { 'id': 'tp', 'fields': table_fields, 'headings': get_table_headings(table_fields), 'items': get_children(directory), } }) vfolders = get_vfolders(directory, all_vfolders=is_admin) if len(vfolders) > 0: table_fields = ['name', 'priority', 'progress', 'total', 'need-translation', 'suggestions', 'critical', 'activity'] ctx.update({ 'vfolders': { 'id': 'vfolders', 'fields': table_fields, 'headings': get_table_headings(table_fields), 'items': vfolders, }, }) #FIXME: set vfolders stats in the resource, don't inject them here. stats['vfolders'] = VirtualFolder.get_stats_for( directory.pootle_path, all_vfolders=is_admin ) ctx.update({ 'parent': get_parent(directory if store is None else store), 'translation_project': translation_project, 'project': project, 'language': language, 'stats': jsonify(stats), 'is_admin': is_admin, 'browser_extends': 'translation_projects/base.html', }) response = render(request, 'browser/overview.html', ctx) if cookie_data: response.set_cookie(SIDEBAR_COOKIE_NAME, cookie_data) return response
def browse(request, translation_project, dir_path, filename=None): project = translation_project.project language = translation_project.language directory = request.directory store = request.store is_admin = check_permission("administrate", request) ctx, cookie_data = get_sidebar_announcements_context(request, project.code, language.code) ctx.update(get_browser_context(request)) # TODO improve plugin logic if "import_export" in settings.INSTALLED_APPS and request.user.is_authenticated(): from import_export.views import handle_upload_form ctx.update(handle_upload_form(request)) has_download = not translation_project.is_terminology_project and ( check_permission("translate", request) or check_permission("suggest", request) ) ctx.update({"display_download": has_download, "has_sidebar": True}) stats = request.resource_obj.get_stats() if store is None: table_fields = [ "name", "progress", "total", "need-translation", "suggestions", "critical", "last-updated", "activity", ] ctx.update( { "table": { "id": "tp", "fields": table_fields, "headings": get_table_headings(table_fields), "items": get_children(directory), } } ) if "virtualfolder" in settings.INSTALLED_APPS: vfolders = get_vfolders(directory, all_vfolders=is_admin) if len(vfolders) > 0: table_fields = [ "name", "priority", "progress", "total", "need-translation", "suggestions", "critical", "activity", ] ctx.update( { "vfolders": { "id": "vfolders", "fields": table_fields, "headings": get_table_headings(table_fields), "items": vfolders, } } ) # FIXME: set vfolders stats in the resource, don't inject them here. stats["vfolders"] = {} for vfolder_treeitem in directory.vf_treeitems.iterator(): if request.user.is_superuser or vfolder_treeitem.is_visible: stats["vfolders"][vfolder_treeitem.code] = vfolder_treeitem.get_stats(include_children=False) ctx.update( { "parent": get_parent(directory if store is None else store), "translation_project": translation_project, "project": project, "language": language, "stats": jsonify(stats), "is_admin": is_admin, "browser_extends": "translation_projects/base.html", } ) response = render(request, "browser/index.html", ctx) if cookie_data: response.set_cookie(SIDEBAR_COOKIE_NAME, cookie_data) return response