|
6 | 6 | from django.conf import settings |
7 | 7 | from django.template.loader import render_to_string |
8 | 8 |
|
| 9 | +from ietf.idtracker.models import InternetDraft |
9 | 10 | from ietf.proceedings.models import Meeting |
10 | | -from ietf.submit.models import IdSubmissionDetail |
| 11 | +from ietf.submit.models import IdSubmissionDetail, TempIdAuthors |
11 | 12 | from ietf.submit.parsers.pdf_parser import PDFParser |
12 | 13 | from ietf.submit.parsers.plain_parser import PlainParser |
13 | 14 | from ietf.submit.parsers.ps_parser import PSParser |
@@ -36,6 +37,7 @@ def __init__(self, *args, **kwargs): |
36 | 37 | self.idnits_message = None |
37 | 38 | self.shutdown = False |
38 | 39 | self.draft = None |
| 40 | + self.filesize = None |
39 | 41 | self.read_dates() |
40 | 42 |
|
41 | 43 | def read_dates(self): |
@@ -85,6 +87,7 @@ def clean_txt(self): |
85 | 87 | parsed_info = PlainParser(txt_file).critical_parse() |
86 | 88 | if parsed_info.errors: |
87 | 89 | raise forms.ValidationError(parsed_info.errors) |
| 90 | + self.filesize=txt_file.size |
88 | 91 | return txt_file |
89 | 92 |
|
90 | 93 | def clean_pdf(self): |
@@ -168,13 +171,57 @@ def check_idnits(self): |
168 | 171 | self.idnits_message = p.stdout.read() |
169 | 172 |
|
170 | 173 | def save_draft_info(self, draft): |
| 174 | + document_id = 0 |
| 175 | + existing_draft = InternetDraft.objects.filter(filename=draft.filename) |
| 176 | + if existing_draft: |
| 177 | + document_id = existing_draft[0].id_document_tag |
171 | 178 | detail = IdSubmissionDetail.objects.create( |
172 | 179 | id_document_name=draft.get_title(), |
173 | 180 | filename=draft.filename, |
174 | 181 | revision=draft.revision, |
175 | 182 | txt_page_count=draft.get_pagecount(), |
| 183 | + filesize=self.filesize, |
176 | 184 | creation_date=draft.get_creation_date(), |
| 185 | + submission_date=datetime.date.today(), |
177 | 186 | idnits_message=self.idnits_message, |
| 187 | + temp_id_document_tag=document_id, |
| 188 | + first_two_pages=''.join(draft.pages[:2]), |
178 | 189 | status_id=1, # Status 1 - upload |
179 | 190 | ) |
| 191 | + order = 0 |
| 192 | + for author in draft.get_authors(): |
| 193 | + name, email = author.rsplit(' ', 1) |
| 194 | + first_name, last_name = name.split(' ', 1) |
| 195 | + email = email.replace('<', '').replace('>', '') |
| 196 | + order += 1 |
| 197 | + TempIdAuthors.objects.create( |
| 198 | + id_document_tag=document_id, |
| 199 | + first_name=first_name, |
| 200 | + last_name=last_name, |
| 201 | + email_address=email, |
| 202 | + author_order=order, |
| 203 | + submission=detail) |
180 | 204 | return detail |
| 205 | + |
| 206 | + |
| 207 | +class AutoPostForm(forms.Form): |
| 208 | + |
| 209 | + first_name = forms.CharField(label=u'Given name', required=True) |
| 210 | + last_name = forms.CharField(label=u'Last name', required=True) |
| 211 | + email = forms.EmailField(label=u'Email address', required=True) |
| 212 | + |
| 213 | + def __init__(self, *args, **kwargs): |
| 214 | + self.draft = kwargs.pop('draft', None) |
| 215 | + self.validation = kwargs.pop('validation', None) |
| 216 | + super(AutoPostForm, self).__init__(*args, **kwargs) |
| 217 | + |
| 218 | + def get_author_buttons(self): |
| 219 | + button_template = '<input type="button" onclick="jQuery(\'#id_first_name\').val(\'%(first_name)s\');jQuery(\'#id_last_name\').val(\'%(last_name)s\');jQuery(\'#id_email\').val(\'%(email)s\');" value="%(full_name)s" />' |
| 220 | + buttons = [] |
| 221 | + for i in self.validation.authors: |
| 222 | + full_name = '%s. %s' % (i.first_name[0], i.last_name) |
| 223 | + buttons.append(button_template % {'first_name': i.first_name, |
| 224 | + 'last_name': i.last_name, |
| 225 | + 'email': i.email()[1], |
| 226 | + 'full_name': full_name}) |
| 227 | + return ''.join(buttons) |
0 commit comments