예제 #1
0
    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),
            })
예제 #2
0
 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
예제 #4
0
 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