Skip to content

Commit 1850a26

Browse files
committed
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
1 parent b3d75af commit 1850a26

4 files changed

Lines changed: 61 additions & 47 deletions

File tree

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# -*- coding: utf-8 -*-
2+
from __future__ import unicode_literals
3+
4+
from django.db import migrations, models
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
('name', '0018_add_formlang_names'),
11+
('submit', '0017_auto_20161207_1046'),
12+
]
13+
14+
operations = [
15+
migrations.AddField(
16+
model_name='submission',
17+
name='formal_languages',
18+
field=models.ManyToManyField(help_text=b'Formal languages used in document', to='name.FormalLanguageName', blank=True),
19+
),
20+
migrations.AddField(
21+
model_name='submission',
22+
name='words',
23+
field=models.IntegerField(null=True, blank=True),
24+
),
25+
]

ietf/submit/models.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from ietf.person.models import Person
1111
from ietf.group.models import Group
1212
from ietf.message.models import Message
13-
from ietf.name.models import DraftSubmissionStateName
13+
from ietf.name.models import DraftSubmissionStateName, FormalLanguageName
1414
from ietf.utils.accesstoken import generate_random_key, generate_access_token
1515

1616

@@ -36,6 +36,9 @@ class Submission(models.Model):
3636
abstract = models.TextField(blank=True)
3737
rev = models.CharField(max_length=3, blank=True)
3838
pages = models.IntegerField(null=True, blank=True)
39+
words = models.IntegerField(null=True, blank=True)
40+
formal_languages = models.ManyToManyField(FormalLanguageName, blank=True, help_text="Formal languages used in document")
41+
3942
authors = models.TextField(blank=True, help_text="List of author names and emails, one author per line, e.g. \"John Doe <john@example.org>\".")
4043
note = models.TextField(blank=True)
4144
replaces = models.CharField(max_length=1000, blank=True)

ietf/submit/tests.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,7 @@ def submit_new_wg(self, formats):
190190
abstract="Blahblahblah.",
191191
rev="01",
192192
pages=2,
193+
words=100,
193194
intended_std_level_id="ps",
194195
ad=draft.ad,
195196
expires=datetime.datetime.now() + datetime.timedelta(days=settings.INTERNET_DRAFT_DAYS_TO_EXPIRE),

ietf/submit/views.py

Lines changed: 31 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from ietf.ietfauth.utils import has_role, role_required
2121
from ietf.mailtrigger.utils import gather_address_lists
2222
from ietf.message.models import Message, MessageAttachment
23+
from ietf.name.models import FormalLanguageName
2324
from ietf.submit.forms import ( SubmissionUploadForm, NameEmailForm, EditSubmissionForm,
2425
PreapprovalForm, ReplacesForm, SubmissionEmailForm, MessageModelForm )
2526
from ietf.submit.mail import ( send_full_url, send_approval_request_to_group,
@@ -124,55 +125,39 @@ def upload_submission(request):
124125
# for this revision.
125126
# If so - we're going to update it otherwise we create a new object
126127

127-
submission = Submission.objects.filter(name=form.filename,
128-
rev=form.revision,
129-
state_id = "waiting-for-draft").distinct()
130-
if (len(submission) == 0):
131-
submission = None
132-
elif (len(submission) == 1):
133-
submission = submission[0]
134-
135-
submission.state = DraftSubmissionStateName.objects.get(slug="uploaded")
136-
submission.remote_ip=form.remote_ip
137-
submission.title=form.title
138-
submission.abstract=abstract
139-
submission.rev=form.revision
140-
submission.pages=form.parsed_draft.get_pagecount()
141-
submission.authors="\n".join(authors)
142-
submission.first_two_pages=''.join(form.parsed_draft.pages[:2])
143-
submission.file_size=file_size
144-
submission.file_types=','.join(form.file_types)
145-
submission.submission_date=datetime.date.today()
146-
submission.document_date=form.parsed_draft.get_creation_date()
147-
submission.replaces=""
148-
149-
submission.save()
128+
submissions = Submission.objects.filter(name=form.filename,
129+
rev=form.revision,
130+
state_id = "waiting-for-draft").distinct()
131+
132+
if not submissions:
133+
submission = Submission(name=form.filename, rev=form.revision, group=form.group)
134+
elif len(submissions) == 1:
135+
submission = submissions[0]
150136
else:
151137
raise Exception("Multiple submissions found waiting for upload")
152138

153-
if (submission == None):
154-
try:
155-
submission = Submission.objects.create(
156-
state=DraftSubmissionStateName.objects.get(slug="uploaded"),
157-
remote_ip=form.remote_ip,
158-
name=form.filename,
159-
group=form.group,
160-
title=form.title,
161-
abstract=abstract,
162-
rev=form.revision,
163-
pages=form.parsed_draft.get_pagecount(),
164-
authors="\n".join(authors),
165-
note="",
166-
first_two_pages=''.join(form.parsed_draft.pages[:2]),
167-
file_size=file_size,
168-
file_types=','.join(form.file_types),
169-
submission_date=datetime.date.today(),
170-
document_date=form.parsed_draft.get_creation_date(),
171-
replaces="",
172-
)
173-
except Exception as e:
174-
log("Exception: %s\n" % e)
175-
raise
139+
try:
140+
submission.state = DraftSubmissionStateName.objects.get(slug="uploaded")
141+
submission.remote_ip = form.remote_ip
142+
submission.title = form.title
143+
submission.abstract = abstract
144+
submission.pages = form.parsed_draft.get_pagecount()
145+
submission.words = form.parsed_draft.get_wordcount()
146+
submission.authors = "\n".join(authors)
147+
submission.first_two_pages = ''.join(form.parsed_draft.pages[:2])
148+
submission.file_size = file_size
149+
submission.file_types = ','.join(form.file_types)
150+
submission.submission_date = datetime.date.today()
151+
submission.document_date = form.parsed_draft.get_creation_date()
152+
submission.replaces = ""
153+
154+
submission.save()
155+
156+
submission.formal_languages = FormalLanguageName.objects.filter(slug__in=form.parsed_draft.get_formal_languages())
157+
158+
except Exception as e:
159+
log("Exception: %s\n" % e)
160+
raise
176161

177162
# run submission checkers
178163
def apply_check(submission, checker, method, fn):

0 commit comments

Comments
 (0)