def test_quicksearchform(self): from crispy_forms.templatetags.crispy_forms_filters import as_crispy_form data = {'q_quick_search_kw': 'keyword'} form = QuickSearchForm(data) form.is_valid() self.assertEqual('keyword', form.cleaned_data['q_quick_search_kw']) self.assertTrue('id_q_quick_search_kw' in as_crispy_form(form))
def test_quicksearchform(self): from crispy_forms.templatetags.crispy_forms_filters import as_crispy_form data = {'q_quick_search_kw': 'keyword'} form = QuickSearchForm(data) form.is_valid() self.assertEqual('keyword', form.cleaned_data['q_quick_search_kw']) self.assertTrue('id_q_quick_search_kw' in as_crispy_form(form))
def create_question(request, story): f = QuestionCreateForm(request.POST) if f.is_valid(): o = f.save(commit=False) o.story = story o.user = request.user o.save() return JSONResponse({'result': render_to_string('lqa/_question.html', {'question': o})}) else: return JSONResponse({'form': as_crispy_form(f)})
def edit_question(request, story, question_id): q = Question.objects.get(id=question_id) f = QuestionCreateForm(request.POST, instance=q) if f.is_valid(): o = f.save(commit=False) o.story = story o.user = request.user o.save() return JSONResponse({'result': render_to_string('lqa/_question.html', {'question': o})}) else: return JSONResponse({'form': as_crispy_form(f)})
def render_form(form): """same than {{ form|crispy }} if crispy_forms is installed. render using a bootstrap3 templating otherwise""" if 'crispy_forms' in settings.INSTALLED_APPS: from crispy_forms.templatetags.crispy_forms_filters import as_crispy_form return as_crispy_form(form) template = get_template("bootstrap/form.html") form = _preprocess_fields(form) return template.render({"form": form})
def render_form(form): """same than {{ form|crispy }} if crispy_forms is installed. render using a bootstrap3 templating otherwise""" if 'crispy_forms' in settings.INSTALLED_APPS: from crispy_forms.templatetags.crispy_forms_filters import as_crispy_form return as_crispy_form(form) template = get_template("bootstrap/form.html") form = _preprocess_fields(form) return template.render({"form": form})
def get_metadata_form(request): paper = get_object_or_404(Paper, pk=request.GET.get('paper')) repo = get_object_or_404(Repository, pk=request.GET.get('repository')) protocol = repo.protocol_for_deposit(paper, request.user) if protocol is None: logger.warning("No protocol") return {'status': 'repoNotAvailable', 'message': _('This repository is not available for this paper.')} form = protocol.get_form() return {'status': 'success', 'form': as_crispy_form(form)}
def get_metadata_form(request): paper = get_object_or_404(Paper, pk=request.GET.get('paper')) repo = get_object_or_404(Repository, pk=request.GET.get('repository')) protocol = repo.protocol_for_deposit(paper, request.user) if protocol is None: print "no protocol" return {'status': 'repoNotAvailable', 'message': _('This repository is not available for this paper.')} form = protocol.get_form() return {'status': 'success', 'form': as_crispy_form(form)}
def create_question(request, story): f = QuestionCreateForm(request.POST) if f.is_valid(): o = f.save(commit=False) o.story = story o.user = request.user o.save() return JSONResponse({ 'result': render_to_string('lqa/_question.html', {'question': o}) }) else: return JSONResponse({'form': as_crispy_form(f)})
def get_metadata_form(request): repo = get_object_or_404(Repository, pk=request.GET.get('repository')) if not repo.enabled: return HttpResponseForbidden(_('This repository is currently not enabled.')) paper = get_object_or_404(Paper, pk=request.GET.get('paper')) protocol = repo.protocol_for_deposit(paper, request.user) if protocol is None: logger.warning("No protocol") return {'status': 'repoNotAvailable', 'message': _('This repository is not available for this paper.')} form = protocol.get_form() return {'status': 'success', 'form': as_crispy_form(form)}
def edit_question(request, story, question_id): q = Question.objects.get(id=question_id) f = QuestionCreateForm(request.POST, instance=q) if f.is_valid(): o = f.save(commit=False) o.story = story o.user = request.user o.save() return JSONResponse({ 'result': render_to_string('lqa/_question.html', {'question': o}) }) else: return JSONResponse({'form': as_crispy_form(f)})
def crispy(form): return as_crispy_form(form, 'Bootstrap3', form.helper.label_class, form.helper.field_class)
def submitDeposit(request, pk): paper = get_object_or_404(Paper, pk=pk) context = {'status': 'error'} form = PaperDepositForm(data=request.POST) if not form.is_valid(): context['form'] = form.errors context['message'] = _("Not all fields have been filled correctly.") return context, 400 # This validation could take place in the form (but we need access to the # paper and user?) repository = form.cleaned_data['radioRepository'] protocol = repository.protocol_for_deposit(paper, request.user) if protocol is None: context['radioRepository'] = _( "This repository cannot be used for this paper.") return context, 400 repositoryForm = protocol.get_bound_form(request.POST) if not repositoryForm.is_valid(): context['form_html'] = as_crispy_form(repositoryForm) context['message'] = _("Not all fields have been filled correctly.") return context, 400 # Store the repository as in the user preferences userprefs = UserPreferences.get_by_user(request.user) userprefs.last_repository = repository userprefs.save(update_fields=['last_repository']) # Check that the paper has been uploaded by the same user pdf = form.cleaned_data['file_id'] if pdf.user != request.user: context['message'] = _('Access to the PDF was denied.') return context, 400 # Submit the paper to the repository path = os.path.join(settings.MEDIA_ROOT, pdf.file.name) # Create initial record d = DepositRecord( paper=paper, user=pdf.user, repository=repository, upload_type=form.cleaned_data['radioUploadType'], file=pdf) d.save() submitResult = protocol.submit_deposit_wrapper(path, repositoryForm) d.request = submitResult.logs if submitResult.status == 'failed': context['message'] = submitResult.message d.save() # Send the failed deposit as error to sentry msg = "Deposit failed for id %s for paper %s \n\n" % (d.pk, paper.pk) logger.error(msg + submitResult.logs) return context, 400 d.identifier = submitResult.identifier d.additional_info = submitResult.additional_info d.status = submitResult.status d.oairecord = submitResult.oairecord d.license = submitResult.license d.pub_date = submitResult.embargo_date if d.pub_date is None and d.status == 'published': d.pub_date = date.today() d.save() paper.update_availability() paper.save() paper.update_index() context['status'] = 'success' # TODO change this (we don't need it) context['upload_id'] = d.id return context
def crispy(form): return as_crispy_form(form)
def crispy_form_horizontal(form, config='col-md-4,col-md-8'): label_class, field_class = config.split(',') form = as_crispy_form(form, label_class=label_class, field_class=field_class) return form