Add words and formal languages to Submission, set them in the submit

view, clean up submit view a bit to avoid duplicated attribute setting
code
 - Legacy-Id: 12660
This commit is contained in:
Ole Laursen 2017-01-16 17:37:23 +00:00
parent b3d75af1af
commit 1850a26b23
4 changed files with 61 additions and 47 deletions

View file

@ -0,0 +1,25 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('name', '0018_add_formlang_names'),
('submit', '0017_auto_20161207_1046'),
]
operations = [
migrations.AddField(
model_name='submission',
name='formal_languages',
field=models.ManyToManyField(help_text=b'Formal languages used in document', to='name.FormalLanguageName', blank=True),
),
migrations.AddField(
model_name='submission',
name='words',
field=models.IntegerField(null=True, blank=True),
),
]

View file

@ -10,7 +10,7 @@ from ietf.doc.models import Document
from ietf.person.models import Person
from ietf.group.models import Group
from ietf.message.models import Message
from ietf.name.models import DraftSubmissionStateName
from ietf.name.models import DraftSubmissionStateName, FormalLanguageName
from ietf.utils.accesstoken import generate_random_key, generate_access_token
@ -36,6 +36,9 @@ class Submission(models.Model):
abstract = models.TextField(blank=True)
rev = models.CharField(max_length=3, blank=True)
pages = models.IntegerField(null=True, blank=True)
words = models.IntegerField(null=True, blank=True)
formal_languages = models.ManyToManyField(FormalLanguageName, blank=True, help_text="Formal languages used in document")
authors = models.TextField(blank=True, help_text="List of author names and emails, one author per line, e.g. \"John Doe <john@example.org>\".")
note = models.TextField(blank=True)
replaces = models.CharField(max_length=1000, blank=True)

View file

@ -190,6 +190,7 @@ class SubmitTests(TestCase):
abstract="Blahblahblah.",
rev="01",
pages=2,
words=100,
intended_std_level_id="ps",
ad=draft.ad,
expires=datetime.datetime.now() + datetime.timedelta(days=settings.INTERNET_DRAFT_DAYS_TO_EXPIRE),

View file

@ -20,6 +20,7 @@ from ietf.group.models import Group
from ietf.ietfauth.utils import has_role, role_required
from ietf.mailtrigger.utils import gather_address_lists
from ietf.message.models import Message, MessageAttachment
from ietf.name.models import FormalLanguageName
from ietf.submit.forms import ( SubmissionUploadForm, NameEmailForm, EditSubmissionForm,
PreapprovalForm, ReplacesForm, SubmissionEmailForm, MessageModelForm )
from ietf.submit.mail import ( send_full_url, send_approval_request_to_group,
@ -124,55 +125,39 @@ def upload_submission(request):
# for this revision.
# If so - we're going to update it otherwise we create a new object
submission = Submission.objects.filter(name=form.filename,
rev=form.revision,
state_id = "waiting-for-draft").distinct()
if (len(submission) == 0):
submission = None
elif (len(submission) == 1):
submission = submission[0]
submission.state = DraftSubmissionStateName.objects.get(slug="uploaded")
submission.remote_ip=form.remote_ip
submission.title=form.title
submission.abstract=abstract
submission.rev=form.revision
submission.pages=form.parsed_draft.get_pagecount()
submission.authors="\n".join(authors)
submission.first_two_pages=''.join(form.parsed_draft.pages[:2])
submission.file_size=file_size
submission.file_types=','.join(form.file_types)
submission.submission_date=datetime.date.today()
submission.document_date=form.parsed_draft.get_creation_date()
submission.replaces=""
submission.save()
submissions = Submission.objects.filter(name=form.filename,
rev=form.revision,
state_id = "waiting-for-draft").distinct()
if not submissions:
submission = Submission(name=form.filename, rev=form.revision, group=form.group)
elif len(submissions) == 1:
submission = submissions[0]
else:
raise Exception("Multiple submissions found waiting for upload")
if (submission == None):
try:
submission = Submission.objects.create(
state=DraftSubmissionStateName.objects.get(slug="uploaded"),
remote_ip=form.remote_ip,
name=form.filename,
group=form.group,
title=form.title,
abstract=abstract,
rev=form.revision,
pages=form.parsed_draft.get_pagecount(),
authors="\n".join(authors),
note="",
first_two_pages=''.join(form.parsed_draft.pages[:2]),
file_size=file_size,
file_types=','.join(form.file_types),
submission_date=datetime.date.today(),
document_date=form.parsed_draft.get_creation_date(),
replaces="",
)
except Exception as e:
log("Exception: %s\n" % e)
raise
try:
submission.state = DraftSubmissionStateName.objects.get(slug="uploaded")
submission.remote_ip = form.remote_ip
submission.title = form.title
submission.abstract = abstract
submission.pages = form.parsed_draft.get_pagecount()
submission.words = form.parsed_draft.get_wordcount()
submission.authors = "\n".join(authors)
submission.first_two_pages = ''.join(form.parsed_draft.pages[:2])
submission.file_size = file_size
submission.file_types = ','.join(form.file_types)
submission.submission_date = datetime.date.today()
submission.document_date = form.parsed_draft.get_creation_date()
submission.replaces = ""
submission.save()
submission.formal_languages = FormalLanguageName.objects.filter(slug__in=form.parsed_draft.get_formal_languages())
except Exception as e:
log("Exception: %s\n" % e)
raise
# run submission checkers
def apply_check(submission, checker, method, fn):