def edit_settings(request, translation_project): form = DescriptionForm(request.POST, instance=translation_project) response = {} rcode = 400 if form.is_valid(): form.save() rcode = 200 if translation_project.description: response["description"] = translation_project.description else: response["description"] = (u'<p class="placeholder muted">%s</p>' % _(u"No description yet.")) context = { "form": form, "form_action": translation_project.pootle_path + "edit_settings.html", } t = loader.get_template('admin/general_settings_form.html') c = RequestContext(request, context) response['form'] = t.render(c) return HttpResponse(jsonify(response), status=rcode, mimetype="application/json")
def tp_settings_edit(request, translation_project): request.permissions = get_matching_permissions( get_profile(request.user), translation_project.directory ) if not check_permission('administrate', request): raise PermissionDenied from pootle_translationproject.forms import DescriptionForm form = DescriptionForm(request.POST, instance=translation_project) response = {} if form.is_valid(): form.save() response = { "intro": form.cleaned_data['description'], "valid": True, } context = { "form": form, "form_action": translation_project.pootle_path + "edit_settings.html", } t = loader.get_template('admin/general_settings_form.html') c = RequestContext(request, context) response['form'] = t.render(c) return HttpResponse(jsonify(response), mimetype="application/json")
def GET(self, template_vars, request, translation_project, directory, store=None): can_edit = check_permission('administrate', request) project = translation_project.project language = translation_project.language path_obj = store or directory path_stats = get_raw_stats(path_obj, include_suggestions=True) path_summary = get_path_summary(path_obj, path_stats) actions = action_groups(request, path_obj, path_stats=path_stats) template_vars.update({ 'translation_project': translation_project, 'project': project, 'language': language, 'directory': directory, 'path_summary': path_summary, 'stats': path_stats, 'stats_headings': get_stats_headings(), 'topstats': gentopstats_translation_project(translation_project), 'feed_path': directory.pootle_path[1:], 'action_groups': actions, 'can_edit': can_edit, }) if store is not None: template_vars.update({'store': store}) else: template_vars.update({ 'children': get_children(request, translation_project, directory) }) if can_edit: from pootle_translationproject.forms import DescriptionForm template_vars['form'] = DescriptionForm( instance=translation_project) return template_vars
def edit_settings(request, translation_project): request.permissions = get_matching_permissions( get_profile(request.user), translation_project.directory ) if not check_permission('administrate', request): raise PermissionDenied from pootle_translationproject.forms import DescriptionForm form = DescriptionForm(request.POST, instance=translation_project) response = {} rcode = 400 if form.is_valid(): form.save() rcode = 200 if translation_project.description: the_html = translation_project.description else: the_html = u"".join([ u'<p class="placeholder muted">', _(u"No description yet."), u"</p>" ]) response["description"] = the_html context = { "form": form, "form_action": translation_project.pootle_path + "edit_settings.html", } t = loader.get_template('admin/general_settings_form.html') c = RequestContext(request, context) response['form'] = t.render(c) return HttpResponse(jsonify(response), status=rcode, mimetype="application/json")
def edit_settings(request, translation_project): request.permissions = get_matching_permissions( get_profile(request.user), translation_project.directory) if not check_permission('administrate', request): raise PermissionDenied from pootle_translationproject.forms import DescriptionForm form = DescriptionForm(request.POST, instance=translation_project) response = {} rcode = 400 if form.is_valid(): form.save() rcode = 200 if translation_project.description: the_html = translation_project.description else: the_html = u"".join([ u'<p class="placeholder muted">', _(u"No description yet."), u"</p>" ]) response["description"] = the_html context = { "form": form, "form_action": translation_project.pootle_path + "edit_settings.html", } t = loader.get_template('admin/general_settings_form.html') c = RequestContext(request, context) response['form'] = t.render(c) return HttpResponse(jsonify(response), status=rcode, mimetype="application/json")
def tp_settings_edit(request, translation_project): request.permissions = get_matching_permissions( get_profile(request.user), translation_project.directory) if not check_permission('administrate', request): raise PermissionDenied from pootle_translationproject.forms import DescriptionForm form = DescriptionForm(request.POST, instance=translation_project) response = {} if form.is_valid(): form.save() response = { "intro": form.cleaned_data['description'], "valid": True, } context = { "form": form, "form_action": translation_project.pootle_path + "edit_settings.html", } t = loader.get_template('admin/general_settings_form.html') c = RequestContext(request, context) response['form'] = t.render(c) return HttpResponse(jsonify(response), mimetype="application/json")
def GET(self, template_vars, request, translation_project, directory): template_vars = super(ProjectIndexView, self).GET(template_vars, request) request.permissions = get_matching_permissions( get_profile(request.user), translation_project.directory) state = dispatch.ProjectIndexState(request.GET) project = translation_project.project language = translation_project.language is_terminology = project.is_terminology description = translation_project.description directory_stats = get_raw_directory_stats(directory) directory_summary = get_directory_summary(directory, directory_stats) template_vars.update({ 'translation_project': translation_project, 'description': description, 'project': project, 'language': language, 'directory': directory, 'children': get_children(request, translation_project, directory), 'dir_summary': directory_summary, 'stats_headings': get_stats_headings(), 'topstats': gentopstats_translation_project(translation_project), 'feed_path': directory.pootle_path[1:], }) if check_permission('administrate', request): from pootle_translationproject.forms import DescriptionForm template_vars['form'] = DescriptionForm( instance=translation_project) return template_vars
def overview(request, translation_project, dir_path, filename=None): current_path = translation_project.directory.pootle_path + dir_path if filename: current_path = current_path + filename store = get_object_or_404(Store, pootle_path=current_path) directory = store.parent template_vars = { 'store_tags': store.tags.all().order_by('name'), } template = "translation_project/store_overview.html" else: store = None directory = get_object_or_404(Directory, pootle_path=current_path) template_vars = { 'tp_tags': translation_project.tags.all().order_by('name'), } template = "translation_project/overview.html" if (check_permission('translate', request) or check_permission('suggest', request) or check_permission('overwrite', request)): template_vars.update({ 'upload_form': _handle_upload_form(request, current_path, translation_project, directory), }) can_edit = check_permission('administrate', request) project = translation_project.project language = translation_project.language path_obj = store or directory latest_action = '' # If current directory is the TP root directory. if not directory.path: latest_action = translation_project.get_latest_submission() elif store is None: # If this is not a file. latest_action = Submission.get_latest_for_dir(path_obj) path_stats = get_raw_stats(path_obj, include_suggestions=True) path_summary = get_path_summary(path_obj, path_stats, latest_action) actions = action_groups(request, path_obj, path_stats=path_stats) action_output = '' running = request.GET.get(EXTDIR, '') if running: if store: act = StoreAction else: act = TranslationProjectAction try: action = act.lookup(running) except KeyError: messages.error(request, _("Unable to find %s %s") % (act, running)) else: if not getattr(action, 'nosync', False): (store or translation_project).sync() if action.is_active(request): vcs_dir = settings.VCS_DIRECTORY po_dir = settings.PODIRECTORY tp_dir = directory.get_real_path() store_fn = '*' if store: tp_dir_slash = add_trailing_slash(tp_dir) if store.file.name.startswith(tp_dir_slash): # Note: store_f used below in reverse() call. store_f = store.file.name[len(tp_dir_slash):] store_fn = store_f.replace('/', os.sep) # Clear possibly stale output/error (even from other path_obj). action.set_output('') action.set_error('') try: action.run(path=path_obj, root=po_dir, tpdir=tp_dir, project=project.code, language=language.code, store=store_fn, style=translation_project.file_style, vc_root=vcs_dir) except StandardError: err = (_("Exception while running '%s' extension action") % action.title) logging.exception(err) if (action.error): messages.error(request, action.error) else: messages.error(request, err) else: if (action.error): messages.warning(request, action.error) action_output = action.output if getattr(action, 'get_download', None): export_path = action.get_download(path_obj) if export_path: response = HttpResponse('/export/' + export_path) response['Content-Disposition'] = ( 'attachment; filename="%s"' % os.path.basename(export_path)) return response if not action_output: if not store: rev_args = [language.code, project.code, ''] overview_url = reverse('tp.overview', args=rev_args) else: slash = store_f.rfind('/') store_d = '' if slash > 0: store_d = store_f[:slash] store_f = store_f[slash + 1:] elif slash == 0: store_f = store_f[1:] rev_args = [ language.code, project.code, store_d, store_f ] overview_url = reverse('tp.overview', args=rev_args) return HttpResponseRedirect(overview_url) template_vars.update({ 'translation_project': translation_project, 'project': project, 'language': language, 'path_obj': path_obj, 'resource_path': request.resource_path, 'path_summary': path_summary, 'stats': path_stats, 'topstats': gentopstats_translation_project(translation_project), 'feed_path': directory.pootle_path[1:], 'action_groups': actions, 'action_output': action_output, 'can_edit': can_edit, }) if store is None: table_fields = [ 'name', 'progress', 'total', 'need-translation', 'suggestions' ] template_vars.update({ 'table': { 'id': 'tp', 'proportional': True, 'fields': table_fields, 'headings': get_table_headings(table_fields), 'items': get_children(translation_project, directory), } }) if can_edit: if store is None: url_kwargs = { 'language_code': language.code, 'project_code': project.code, } add_tag_action_url = reverse('tp.ajax_add_tag', kwargs=url_kwargs) else: add_tag_action_url = reverse('pootle-store-ajax-add-tag', args=[path_obj.pk]) template_vars.update({ 'form': DescriptionForm(instance=translation_project), 'add_tag_form': TagForm(), 'add_tag_action_url': add_tag_action_url, }) return render_to_response(template, template_vars, context_instance=RequestContext(request))