def post(self, request, *args, **kwargs): obj = self.get_object(kwargs) form = self.form_class(request.POST, request.FILES, instance=obj) if form.is_valid(): object_created = not form.instance.pk obj = form.save() msg = 'Created ' if object_created else 'Modified' msg += self.model._meta.verbose_name if hasattr(obj, 'get_absolute_url'): msg = '{} <a href="{}">{}</a>'.format(msg, obj.get_absolute_url, escape(obj)) else: msg = '{} {}'.format(msg, escape(obj)) messages.success(request, mark_safe(msg)) #add another if '_addanother' in request.POST: return redirect(request.path) return redirect(self.get_return_url(request, obj)) return render( request, self.template_name, { 'obj': obj, 'obj_type': self.model._meta.verbose_name, 'form': form, 'return_url': self.get_return_url(request, obj), })
def clean(self): cleaned_data = super(PublishRequestForm, self).clean() lang = cleaned_data["language"] obs = OBSTranslation(base_path="", lang_code=lang.code) if not obs.qa_check(): error_list_html = "".join(['<li><a href="{url}"><i class="fa fa-external-link"></i></a> {description}</li>'.format(**err) for err in obs.qa_issues_list]) raise forms.ValidationError(mark_safe("The language does not pass the quality check for the following reasons: <ul>" + error_list_html + "</ul>")) return cleaned_data
def clean(self): cleaned_data = super(PublishRequestForm, self).clean() if self.is_valid(): lang = cleaned_data["language"] resource_type = cleaned_data["resource_type"] ResourceTranslator = TRANSLATION_TYPES.get(resource_type.short_name, None) if ResourceTranslator: translation = ResourceTranslator(base_path="", lang_code=lang.code) if not translation.qa_check(): error_list_html = "".join([ ( '<li><a href="{url}" target="_blank"><i class="fa ' 'fa-external-link"></i></a> {description}</li>' ).format(**err) for err in translation.qa_issues_list ]) raise forms.ValidationError(mark_safe( "This resource did not pass the quality check. Please " "click each link below and fix the issue mentioned on " "the Door43 site: <ul>" + error_list_html + "</ul>" )) return cleaned_data
def clean(self): cleaned_data = super(PublishRequestForm, self).clean() if self.is_valid(): lang = cleaned_data["language"] resource_type = cleaned_data["resource_type"] resource_translator = TRANSLATION_TYPES.get( resource_type.short_name, None) if resource_translator: translation = resource_translator(base_path="", lang_code=lang.code) if not translation.qa_check(): error_list_html = "".join([ ('<li><a href="{url}" target="_blank"><i class="fa ' 'fa-external-link"></i></a> {description}</li>' ).format(**err) for err in translation.qa_issues_list ]) raise forms.ValidationError( mark_safe( "This resource did not pass the quality check. Please " "click each link below and fix the issue mentioned on " "the Door43 site: <ul>" + error_list_html + "</ul>")) return cleaned_data