refactor: use form for search_submission (#8065)
* refactor: use form for search_submission * chore: remove lint * style: Black
This commit is contained in:
parent
1e193377df
commit
c26ba974ba
|
@ -659,3 +659,13 @@ class MessageModelForm(forms.ModelForm):
|
||||||
self.fields['frm'].label='From'
|
self.fields['frm'].label='From'
|
||||||
self.fields['frm'].widget.attrs['readonly'] = True
|
self.fields['frm'].widget.attrs['readonly'] = True
|
||||||
self.fields['reply_to'].widget.attrs['readonly'] = True
|
self.fields['reply_to'].widget.attrs['readonly'] = True
|
||||||
|
|
||||||
|
|
||||||
|
class SubmissionSearchForm(forms.Form):
|
||||||
|
"""Form used for search_submission"""
|
||||||
|
|
||||||
|
name = forms.CharField(max_length=255, required=True, label="I-D name")
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
self.fields["name"].widget.attrs["placeholder"] = "draft-..."
|
||||||
|
|
|
@ -26,17 +26,47 @@ from ietf.group.utils import group_features_group_filter
|
||||||
from ietf.ietfauth.utils import has_role, role_required
|
from ietf.ietfauth.utils import has_role, role_required
|
||||||
from ietf.mailtrigger.utils import gather_address_lists
|
from ietf.mailtrigger.utils import gather_address_lists
|
||||||
from ietf.person.models import Email
|
from ietf.person.models import Email
|
||||||
from ietf.submit.forms import (SubmissionAutoUploadForm, AuthorForm, SubmitterForm, EditSubmissionForm,
|
from ietf.submit.forms import (
|
||||||
PreapprovalForm, ReplacesForm, SubmissionManualUploadForm)
|
SubmissionAutoUploadForm,
|
||||||
|
AuthorForm,
|
||||||
|
SubmitterForm,
|
||||||
|
EditSubmissionForm,
|
||||||
|
PreapprovalForm,
|
||||||
|
ReplacesForm,
|
||||||
|
SubmissionManualUploadForm,
|
||||||
|
SubmissionSearchForm,
|
||||||
|
)
|
||||||
from ietf.submit.mail import send_full_url, send_manual_post_request
|
from ietf.submit.mail import send_full_url, send_manual_post_request
|
||||||
from ietf.submit.models import (Submission, Preapproval, SubmissionExtResource,
|
from ietf.submit.models import (
|
||||||
DraftSubmissionStateName )
|
Submission,
|
||||||
from ietf.submit.tasks import process_uploaded_submission_task, process_and_accept_uploaded_submission_task, poke
|
Preapproval,
|
||||||
from ietf.submit.utils import ( approvable_submissions_for_user, preapprovals_for_user,
|
SubmissionExtResource,
|
||||||
recently_approved_by_user, validate_submission, create_submission_event, docevent_from_submission,
|
DraftSubmissionStateName,
|
||||||
post_submission, cancel_submission, rename_submission_files, remove_submission_files,
|
)
|
||||||
get_submission, save_files, clear_existing_files, accept_submission, accept_submission_requires_group_approval,
|
from ietf.submit.tasks import (
|
||||||
accept_submission_requires_prev_auth_approval, update_submission_external_resources)
|
process_uploaded_submission_task,
|
||||||
|
process_and_accept_uploaded_submission_task,
|
||||||
|
poke,
|
||||||
|
)
|
||||||
|
from ietf.submit.utils import (
|
||||||
|
approvable_submissions_for_user,
|
||||||
|
preapprovals_for_user,
|
||||||
|
recently_approved_by_user,
|
||||||
|
validate_submission,
|
||||||
|
create_submission_event,
|
||||||
|
docevent_from_submission,
|
||||||
|
post_submission,
|
||||||
|
cancel_submission,
|
||||||
|
rename_submission_files,
|
||||||
|
remove_submission_files,
|
||||||
|
get_submission,
|
||||||
|
save_files,
|
||||||
|
clear_existing_files,
|
||||||
|
accept_submission,
|
||||||
|
accept_submission_requires_group_approval,
|
||||||
|
accept_submission_requires_prev_auth_approval,
|
||||||
|
update_submission_external_resources,
|
||||||
|
)
|
||||||
from ietf.stats.utils import clean_country_name
|
from ietf.stats.utils import clean_country_name
|
||||||
from ietf.utils.accesstoken import generate_access_token
|
from ietf.utils.accesstoken import generate_access_token
|
||||||
from ietf.utils.log import log
|
from ietf.utils.log import log
|
||||||
|
@ -195,24 +225,33 @@ def api_submit_tombstone(request):
|
||||||
def tool_instructions(request):
|
def tool_instructions(request):
|
||||||
return render(request, 'submit/tool_instructions.html', {'selected': 'instructions'})
|
return render(request, 'submit/tool_instructions.html', {'selected': 'instructions'})
|
||||||
|
|
||||||
|
|
||||||
def search_submission(request):
|
def search_submission(request):
|
||||||
error = None
|
if request.method == "POST":
|
||||||
name = None
|
form = SubmissionSearchForm(request.POST)
|
||||||
if request.method == 'POST':
|
if form.is_valid():
|
||||||
name = request.POST.get('name', '')
|
name = form.cleaned_data["name"]
|
||||||
submission = Submission.objects.filter(name=name).order_by('-pk').first()
|
submission = Submission.objects.filter(name=name).order_by("-pk").first()
|
||||||
if submission:
|
if submission:
|
||||||
return redirect(submission_status, submission_id=submission.pk)
|
return redirect(submission_status, submission_id=submission.pk)
|
||||||
else:
|
else:
|
||||||
if re.search(r'-\d\d$', name):
|
if re.search(r"-\d\d$", name):
|
||||||
submission = Submission.objects.filter(name=name[:-3]).order_by('-pk').first()
|
submission = (
|
||||||
if submission:
|
Submission.objects.filter(name=name[:-3])
|
||||||
return redirect(submission_status, submission_id=submission.pk)
|
.order_by("-pk")
|
||||||
error = 'No valid submission found for %s' % name
|
.first()
|
||||||
return render(request, 'submit/search_submission.html',
|
)
|
||||||
{'selected': 'status',
|
if submission:
|
||||||
'error': error,
|
return redirect(submission_status, submission_id=submission.pk)
|
||||||
'name': name})
|
form.add_error(None, f"No valid submission found for {name}")
|
||||||
|
else:
|
||||||
|
form = SubmissionSearchForm()
|
||||||
|
return render(
|
||||||
|
request,
|
||||||
|
"submit/search_submission.html",
|
||||||
|
{"selected": "status", "form": form},
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def can_edit_submission(user, submission, access_token):
|
def can_edit_submission(user, submission, access_token):
|
||||||
key_matched = access_token and submission.access_token() == access_token
|
key_matched = access_token and submission.access_token() == access_token
|
||||||
|
|
|
@ -12,14 +12,8 @@
|
||||||
<form method="post">
|
<form method="post">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label class="form-label" for="name">I-D name</label>
|
{% bootstrap_form form %}
|
||||||
<input type="text" class="form-control" id="name" name="name" placeholder="draft-..." required>
|
|
||||||
</div>
|
</div>
|
||||||
{% if error %}
|
|
||||||
<p class="alert alert-danger my-3">
|
|
||||||
{{ error }}
|
|
||||||
</p>
|
|
||||||
{% endif %}
|
|
||||||
<button class="btn btn-primary" type="submit">See status</button>
|
<button class="btn btn-primary" type="submit">See status</button>
|
||||||
</form>
|
</form>
|
||||||
{% endblock %}
|
{% endblock %}
|
Loading…
Reference in a new issue