Coverage for src/mesh/migrations/0001_initial.py: 100%
11 statements
« prev ^ index » next coverage.py v7.9.0, created at 2026-02-04 09:42 +0000
« prev ^ index » next coverage.py v7.9.0, created at 2026-02-04 09:42 +0000
1# Generated by Django 4.2.17 on 2025-04-22 13:37
3import django.db.models.deletion
4import django.utils.timezone
5from django.conf import settings
6from django.db import migrations, models
8import mesh.model.file_helpers
9import mesh.models.file_models
10import mesh.models.user_models
13class Migration(migrations.Migration):
14 initial = True
16 dependencies = [
17 ("auth", "0012_alter_user_first_name_max_length"),
18 ]
20 operations = [
21 migrations.CreateModel(
22 name="User",
23 fields=[
24 (
25 "id",
26 models.BigAutoField(
27 auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
28 ),
29 ),
30 ("password", models.CharField(max_length=128, verbose_name="password")),
31 (
32 "last_login",
33 models.DateTimeField(blank=True, null=True, verbose_name="last login"),
34 ),
35 (
36 "is_superuser",
37 models.BooleanField(
38 default=False,
39 help_text="Designates that this user has all permissions without explicitly assigning them.",
40 verbose_name="superuser status",
41 ),
42 ),
43 (
44 "is_staff",
45 models.BooleanField(
46 default=False,
47 help_text="Designates whether the user can log into this admin site.",
48 verbose_name="staff status",
49 ),
50 ),
51 (
52 "is_active",
53 models.BooleanField(
54 default=True,
55 help_text="Designates whether this user should be treated as active. Unselect this instead of deleting accounts.",
56 verbose_name="active",
57 ),
58 ),
59 (
60 "date_joined",
61 models.DateTimeField(
62 default=django.utils.timezone.now, verbose_name="date joined"
63 ),
64 ),
65 ("first_name", models.CharField(max_length=150, verbose_name="first name")),
66 ("last_name", models.CharField(max_length=150, verbose_name="last name")),
67 (
68 "email",
69 models.EmailField(max_length=254, unique=True, verbose_name="e-mail address"),
70 ),
71 (
72 "journal_manager",
73 models.BooleanField(default=False, verbose_name="Journal manager"),
74 ),
75 (
76 "keywords",
77 models.TextField(blank=True, default="", null=True, verbose_name="Keywords"),
78 ),
79 ("current_role", models.CharField(blank=True, max_length=32, null=True)),
80 (
81 "groups",
82 models.ManyToManyField(
83 blank=True,
84 help_text="The groups this user belongs to. A user will get all permissions granted to each of their groups.",
85 related_name="user_set",
86 related_query_name="user",
87 to="auth.group",
88 verbose_name="groups",
89 ),
90 ),
91 (
92 "user_permissions",
93 models.ManyToManyField(
94 blank=True,
95 help_text="Specific permissions for this user.",
96 related_name="user_set",
97 related_query_name="user",
98 to="auth.permission",
99 verbose_name="user permissions",
100 ),
101 ),
102 ],
103 options={
104 "verbose_name": "user",
105 "verbose_name_plural": "users",
106 "abstract": False,
107 },
108 managers=[
109 ("objects", mesh.models.user_models.UserManager()),
110 ],
111 ),
112 migrations.CreateModel(
113 name="EditorialDecision",
114 fields=[
115 (
116 "id",
117 models.BigAutoField(
118 auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
119 ),
120 ),
121 (
122 "date_created",
123 models.DateTimeField(
124 blank=True,
125 default=django.utils.timezone.now,
126 editable=False,
127 null=True,
128 verbose_name="Creation date",
129 ),
130 ),
131 (
132 "date_last_modified",
133 models.DateTimeField(
134 blank=True,
135 default=django.utils.timezone.now,
136 editable=False,
137 null=True,
138 verbose_name="Last modification date",
139 ),
140 ),
141 (
142 "value",
143 models.CharField(
144 choices=[
145 ("rev_requested", "Request revisions"),
146 ("accepted", "Accept submission"),
147 ("rejected", "Reject submission"),
148 ],
149 max_length=64,
150 verbose_name="Decision",
151 ),
152 ),
153 ("comment", models.TextField(blank=True, null=True, verbose_name="Description")),
154 (
155 "created_by",
156 models.ForeignKey(
157 blank=True,
158 editable=False,
159 help_text="Automatically filled on save.",
160 null=True,
161 on_delete=django.db.models.deletion.SET_NULL,
162 related_name="+",
163 to=settings.AUTH_USER_MODEL,
164 verbose_name="Created by",
165 ),
166 ),
167 (
168 "last_modified_by",
169 models.ForeignKey(
170 blank=True,
171 editable=False,
172 help_text="Automatically filled on save.",
173 null=True,
174 on_delete=django.db.models.deletion.SET_NULL,
175 related_name="+",
176 to=settings.AUTH_USER_MODEL,
177 verbose_name="Last modified by",
178 ),
179 ),
180 ],
181 options={
182 "abstract": False,
183 },
184 ),
185 migrations.CreateModel(
186 name="JournalSection",
187 fields=[
188 (
189 "id",
190 models.BigAutoField(
191 auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
192 ),
193 ),
194 (
195 "date_created",
196 models.DateTimeField(
197 blank=True,
198 default=django.utils.timezone.now,
199 editable=False,
200 null=True,
201 verbose_name="Creation date",
202 ),
203 ),
204 (
205 "date_last_modified",
206 models.DateTimeField(
207 blank=True,
208 default=django.utils.timezone.now,
209 editable=False,
210 null=True,
211 verbose_name="Last modification date",
212 ),
213 ),
214 ("name", models.CharField(max_length=128, unique=True, verbose_name="Name")),
215 (
216 "created_by",
217 models.ForeignKey(
218 blank=True,
219 editable=False,
220 help_text="Automatically filled on save.",
221 null=True,
222 on_delete=django.db.models.deletion.SET_NULL,
223 related_name="+",
224 to=settings.AUTH_USER_MODEL,
225 verbose_name="Created by",
226 ),
227 ),
228 (
229 "last_modified_by",
230 models.ForeignKey(
231 blank=True,
232 editable=False,
233 help_text="Automatically filled on save.",
234 null=True,
235 on_delete=django.db.models.deletion.SET_NULL,
236 related_name="+",
237 to=settings.AUTH_USER_MODEL,
238 verbose_name="Last modified by",
239 ),
240 ),
241 (
242 "parent",
243 models.ForeignKey(
244 blank=True,
245 null=True,
246 on_delete=django.db.models.deletion.SET_NULL,
247 related_name="children",
248 to="mesh.journalsection",
249 ),
250 ),
251 ],
252 options={
253 "abstract": False,
254 },
255 ),
256 migrations.CreateModel(
257 name="Review",
258 fields=[
259 (
260 "id",
261 models.BigAutoField(
262 auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
263 ),
264 ),
265 (
266 "date_created",
267 models.DateTimeField(
268 blank=True,
269 default=django.utils.timezone.now,
270 editable=False,
271 null=True,
272 verbose_name="Creation date",
273 ),
274 ),
275 (
276 "date_last_modified",
277 models.DateTimeField(
278 blank=True,
279 default=django.utils.timezone.now,
280 editable=False,
281 null=True,
282 verbose_name="Last modification date",
283 ),
284 ),
285 (
286 "submitted",
287 models.BooleanField(
288 blank=True, default=False, editable=False, verbose_name="Submitted"
289 ),
290 ),
291 (
292 "date_submitted",
293 models.DateTimeField(
294 blank=True, editable=False, null=True, verbose_name="Submitted on"
295 ),
296 ),
297 (
298 "state",
299 models.CharField(
300 choices=[
301 ("awaiting_accept", "Waiting for acceptance"),
302 ("declined", "Declined"),
303 ("pending", "Pending"),
304 ("submitted", "Submitted"),
305 ],
306 default="awaiting_accept",
307 max_length=64,
308 ),
309 ),
310 ("date_response_due", models.DateField(verbose_name="Response due date")),
311 ("date_review_due", models.DateField(verbose_name="Review due date")),
312 (
313 "recommendation",
314 models.CharField(
315 blank=True,
316 choices=[
317 ("accepted", "Accept submission"),
318 ("rejected", "Decline submission"),
319 ("rev_requested", "Revision(s) required"),
320 ("resubmit", "Re-submit somewhere else"),
321 ],
322 default=None,
323 max_length=64,
324 null=True,
325 ),
326 ),
327 (
328 "accepted",
329 models.BooleanField(
330 choices=[(True, "Accept"), (False, "Decline")],
331 null=True,
332 verbose_name="Confirmation",
333 ),
334 ),
335 ("date_accepted", models.DateTimeField(editable=False, null=True)),
336 (
337 "request_email",
338 models.TextField(blank=True, null=True, verbose_name="Request e-mail"),
339 ),
340 (
341 "accept_comment",
342 models.TextField(blank=True, null=True, verbose_name="Accept comment"),
343 ),
344 (
345 "comment",
346 models.TextField(blank=True, null=True, verbose_name="Review comment"),
347 ),
348 (
349 "created_by",
350 models.ForeignKey(
351 blank=True,
352 editable=False,
353 help_text="Automatically filled on save.",
354 null=True,
355 on_delete=django.db.models.deletion.SET_NULL,
356 related_name="+",
357 to=settings.AUTH_USER_MODEL,
358 verbose_name="Created by",
359 ),
360 ),
361 (
362 "last_modified_by",
363 models.ForeignKey(
364 blank=True,
365 editable=False,
366 help_text="Automatically filled on save.",
367 null=True,
368 on_delete=django.db.models.deletion.SET_NULL,
369 related_name="+",
370 to=settings.AUTH_USER_MODEL,
371 verbose_name="Last modified by",
372 ),
373 ),
374 (
375 "reviewer",
376 models.ForeignKey(
377 on_delete=django.db.models.deletion.PROTECT, to=settings.AUTH_USER_MODEL
378 ),
379 ),
380 ],
381 ),
382 migrations.CreateModel(
383 name="Submission",
384 fields=[
385 (
386 "id",
387 models.BigAutoField(
388 auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
389 ),
390 ),
391 (
392 "date_created",
393 models.DateTimeField(
394 blank=True,
395 default=django.utils.timezone.now,
396 editable=False,
397 null=True,
398 verbose_name="Creation date",
399 ),
400 ),
401 (
402 "date_last_modified",
403 models.DateTimeField(
404 blank=True,
405 default=django.utils.timezone.now,
406 editable=False,
407 null=True,
408 verbose_name="Last modification date",
409 ),
410 ),
411 ("name", models.TextField(verbose_name="Title")),
412 ("abstract", models.TextField(verbose_name="Abstract")),
413 (
414 "state",
415 models.CharField(
416 choices=[
417 ("opened", "Draft"),
418 ("submitted", "Submitted"),
419 ("review", "Under review"),
420 ("rev_requested", "Revision requested"),
421 ("rev_submited", "Revision submitted"),
422 ("accepted", "Accepted"),
423 ("rejected", "Rejected"),
424 ],
425 default="opened",
426 max_length=64,
427 verbose_name="state",
428 ),
429 ),
430 (
431 "date_first_version",
432 models.DateTimeField(
433 editable=False,
434 null=True,
435 verbose_name="Date of the first submitted version",
436 ),
437 ),
438 (
439 "author_agreement",
440 models.BooleanField(
441 help_text="I hereby declare that I have read blablabla and I consent to the terms",
442 verbose_name="Agreement",
443 ),
444 ),
445 ("notes", models.TextField(default="", verbose_name="Notes")),
446 (
447 "created_by",
448 models.ForeignKey(
449 blank=True,
450 editable=False,
451 help_text="Automatically filled on save.",
452 on_delete=django.db.models.deletion.PROTECT,
453 related_name="+",
454 to=settings.AUTH_USER_MODEL,
455 verbose_name="Created by",
456 ),
457 ),
458 (
459 "journal_section",
460 models.ForeignKey(
461 blank=True,
462 null=True,
463 on_delete=django.db.models.deletion.SET_NULL,
464 related_name="submissions",
465 to="mesh.journalsection",
466 verbose_name="Section (Optional)",
467 ),
468 ),
469 (
470 "last_modified_by",
471 models.ForeignKey(
472 blank=True,
473 editable=False,
474 help_text="Automatically filled on save.",
475 null=True,
476 on_delete=django.db.models.deletion.SET_NULL,
477 related_name="+",
478 to=settings.AUTH_USER_MODEL,
479 verbose_name="Last modified by",
480 ),
481 ),
482 ],
483 ),
484 migrations.CreateModel(
485 name="SubmissionVersion",
486 fields=[
487 (
488 "id",
489 models.BigAutoField(
490 auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
491 ),
492 ),
493 (
494 "date_created",
495 models.DateTimeField(
496 blank=True,
497 default=django.utils.timezone.now,
498 editable=False,
499 null=True,
500 verbose_name="Creation date",
501 ),
502 ),
503 (
504 "date_last_modified",
505 models.DateTimeField(
506 blank=True,
507 default=django.utils.timezone.now,
508 editable=False,
509 null=True,
510 verbose_name="Last modification date",
511 ),
512 ),
513 (
514 "submitted",
515 models.BooleanField(
516 blank=True, default=False, editable=False, verbose_name="Submitted"
517 ),
518 ),
519 (
520 "date_submitted",
521 models.DateTimeField(
522 blank=True, editable=False, null=True, verbose_name="Submitted on"
523 ),
524 ),
525 (
526 "number",
527 models.IntegerField(
528 blank=True, editable=False, help_text="Automatically filled on save"
529 ),
530 ),
531 (
532 "review_open",
533 models.BooleanField(
534 default=False, editable=False, verbose_name="Version opened for review"
535 ),
536 ),
537 (
538 "created_by",
539 models.ForeignKey(
540 blank=True,
541 editable=False,
542 help_text="Automatically filled on save.",
543 null=True,
544 on_delete=django.db.models.deletion.SET_NULL,
545 related_name="+",
546 to=settings.AUTH_USER_MODEL,
547 verbose_name="Created by",
548 ),
549 ),
550 (
551 "last_modified_by",
552 models.ForeignKey(
553 blank=True,
554 editable=False,
555 help_text="Automatically filled on save.",
556 null=True,
557 on_delete=django.db.models.deletion.SET_NULL,
558 related_name="+",
559 to=settings.AUTH_USER_MODEL,
560 verbose_name="Last modified by",
561 ),
562 ),
563 (
564 "submission",
565 models.ForeignKey(
566 blank=True,
567 editable=False,
568 on_delete=django.db.models.deletion.CASCADE,
569 related_name="versions",
570 to="mesh.submission",
571 ),
572 ),
573 ],
574 ),
575 migrations.CreateModel(
576 name="SuggestedReviewer",
577 fields=[
578 (
579 "id",
580 models.BigAutoField(
581 auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
582 ),
583 ),
584 ("first_name", models.CharField(max_length=150, verbose_name="first name")),
585 ("last_name", models.CharField(max_length=150, verbose_name="last name")),
586 (
587 "email",
588 models.EmailField(max_length=254, unique=True, verbose_name="e-mail address"),
589 ),
590 (
591 "keywords",
592 models.TextField(blank=True, default="", null=True, verbose_name="Keywords"),
593 ),
594 ],
595 ),
596 migrations.CreateModel(
597 name="SubmissionMainFile",
598 fields=[
599 (
600 "date_created",
601 models.DateTimeField(
602 blank=True,
603 default=django.utils.timezone.now,
604 editable=False,
605 null=True,
606 verbose_name="Creation date",
607 ),
608 ),
609 (
610 "date_last_modified",
611 models.DateTimeField(
612 blank=True,
613 default=django.utils.timezone.now,
614 editable=False,
615 null=True,
616 verbose_name="Last modification date",
617 ),
618 ),
619 (
620 "file",
621 models.FileField(
622 max_length=1024,
623 storage=mesh.model.file_helpers.MeshFileSystemStorage,
624 upload_to=mesh.models.file_models.get_upload_path_from_model,
625 ),
626 ),
627 ("name", models.CharField(blank=True, max_length=256)),
628 (
629 "attached_to",
630 models.OneToOneField(
631 on_delete=django.db.models.deletion.CASCADE,
632 primary_key=True,
633 related_name="main_file",
634 serialize=False,
635 to="mesh.submissionversion",
636 ),
637 ),
638 ],
639 options={
640 "abstract": False,
641 },
642 ),
643 migrations.CreateModel(
644 name="UserToken",
645 fields=[
646 (
647 "id",
648 models.BigAutoField(
649 auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
650 ),
651 ),
652 (
653 "date_created",
654 models.DateTimeField(
655 blank=True,
656 default=django.utils.timezone.now,
657 editable=False,
658 null=True,
659 verbose_name="Creation date",
660 ),
661 ),
662 (
663 "date_last_modified",
664 models.DateTimeField(
665 blank=True,
666 default=django.utils.timezone.now,
667 editable=False,
668 null=True,
669 verbose_name="Last modification date",
670 ),
671 ),
672 ("key", models.CharField(max_length=256, unique=True)),
673 (
674 "date_refreshed",
675 models.DateField(blank=True, help_text="Automatically filled when created."),
676 ),
677 (
678 "created_by",
679 models.ForeignKey(
680 blank=True,
681 editable=False,
682 help_text="Automatically filled on save.",
683 null=True,
684 on_delete=django.db.models.deletion.SET_NULL,
685 related_name="+",
686 to=settings.AUTH_USER_MODEL,
687 verbose_name="Created by",
688 ),
689 ),
690 (
691 "last_modified_by",
692 models.ForeignKey(
693 blank=True,
694 editable=False,
695 help_text="Automatically filled on save.",
696 null=True,
697 on_delete=django.db.models.deletion.SET_NULL,
698 related_name="+",
699 to=settings.AUTH_USER_MODEL,
700 verbose_name="Last modified by",
701 ),
702 ),
703 (
704 "user",
705 models.OneToOneField(
706 on_delete=django.db.models.deletion.CASCADE,
707 related_name="token",
708 to=settings.AUTH_USER_MODEL,
709 ),
710 ),
711 ],
712 options={
713 "abstract": False,
714 },
715 ),
716 migrations.CreateModel(
717 name="Suggestion",
718 fields=[
719 (
720 "id",
721 models.BigAutoField(
722 auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
723 ),
724 ),
725 (
726 "suggest_to_avoid",
727 models.BooleanField(
728 default=False,
729 verbose_name="Suggested by an author to not review the submission",
730 ),
731 ),
732 ("seq", models.IntegerField()),
733 (
734 "submission",
735 models.ForeignKey(
736 blank=True,
737 null=True,
738 on_delete=django.db.models.deletion.CASCADE,
739 related_name="suggestions_for_reviewer",
740 to="mesh.submission",
741 ),
742 ),
743 (
744 "suggested_reviewer",
745 models.ForeignKey(
746 blank=True,
747 null=True,
748 on_delete=django.db.models.deletion.CASCADE,
749 related_name="suggestions_for_submission",
750 to="mesh.suggestedreviewer",
751 ),
752 ),
753 (
754 "suggested_user",
755 models.ForeignKey(
756 blank=True,
757 null=True,
758 on_delete=django.db.models.deletion.CASCADE,
759 related_name="suggestions_for_submission",
760 to=settings.AUTH_USER_MODEL,
761 ),
762 ),
763 ],
764 ),
765 migrations.CreateModel(
766 name="SubmissionLog",
767 fields=[
768 (
769 "id",
770 models.BigAutoField(
771 auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
772 ),
773 ),
774 (
775 "date_created",
776 models.DateTimeField(
777 blank=True,
778 default=django.utils.timezone.now,
779 editable=False,
780 null=True,
781 verbose_name="Creation date",
782 ),
783 ),
784 (
785 "date_last_modified",
786 models.DateTimeField(
787 blank=True,
788 default=django.utils.timezone.now,
789 editable=False,
790 null=True,
791 verbose_name="Last modification date",
792 ),
793 ),
794 ("content", models.TextField(blank=True, null=True)),
795 ("content_en", models.TextField(blank=True, null=True)),
796 ("code", models.CharField(blank=True, max_length=128, null=True)),
797 (
798 "type",
799 models.CharField(
800 choices=[("generated", "Auto generated"), ("manual", "Manual entry")],
801 default="generated",
802 max_length=32,
803 verbose_name="Message type",
804 ),
805 ),
806 (
807 "significant",
808 models.BooleanField(default=False, verbose_name="Significant log"),
809 ),
810 (
811 "attached_to",
812 models.ForeignKey(
813 on_delete=django.db.models.deletion.CASCADE,
814 related_name="log_messages",
815 to="mesh.submission",
816 ),
817 ),
818 (
819 "created_by",
820 models.ForeignKey(
821 blank=True,
822 editable=False,
823 help_text="Automatically filled on save.",
824 null=True,
825 on_delete=django.db.models.deletion.SET_NULL,
826 related_name="+",
827 to=settings.AUTH_USER_MODEL,
828 verbose_name="Created by",
829 ),
830 ),
831 (
832 "impersonated_by",
833 models.ForeignKey(
834 blank=True,
835 editable=False,
836 null=True,
837 on_delete=django.db.models.deletion.SET_NULL,
838 related_name="+",
839 to=settings.AUTH_USER_MODEL,
840 ),
841 ),
842 (
843 "last_modified_by",
844 models.ForeignKey(
845 blank=True,
846 editable=False,
847 help_text="Automatically filled on save.",
848 null=True,
849 on_delete=django.db.models.deletion.SET_NULL,
850 related_name="+",
851 to=settings.AUTH_USER_MODEL,
852 verbose_name="Last modified by",
853 ),
854 ),
855 ],
856 options={
857 "abstract": False,
858 },
859 ),
860 migrations.CreateModel(
861 name="SubmissionAuthor",
862 fields=[
863 (
864 "id",
865 models.BigAutoField(
866 auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
867 ),
868 ),
869 (
870 "date_created",
871 models.DateTimeField(
872 blank=True,
873 default=django.utils.timezone.now,
874 editable=False,
875 null=True,
876 verbose_name="Creation date",
877 ),
878 ),
879 (
880 "date_last_modified",
881 models.DateTimeField(
882 blank=True,
883 default=django.utils.timezone.now,
884 editable=False,
885 null=True,
886 verbose_name="Last modification date",
887 ),
888 ),
889 ("first_name", models.CharField(max_length=150, verbose_name="First name")),
890 ("last_name", models.CharField(max_length=150, verbose_name="Last name")),
891 ("email", models.EmailField(max_length=254, verbose_name="E-mail address")),
892 (
893 "corresponding",
894 models.BooleanField(
895 default=False,
896 help_text="If checked, e-mails will be sent to advise of any progress in the submission process.",
897 verbose_name="Corresponding contact",
898 ),
899 ),
900 (
901 "created_by",
902 models.ForeignKey(
903 blank=True,
904 editable=False,
905 help_text="Automatically filled on save.",
906 null=True,
907 on_delete=django.db.models.deletion.SET_NULL,
908 related_name="+",
909 to=settings.AUTH_USER_MODEL,
910 verbose_name="Created by",
911 ),
912 ),
913 (
914 "last_modified_by",
915 models.ForeignKey(
916 blank=True,
917 editable=False,
918 help_text="Automatically filled on save.",
919 null=True,
920 on_delete=django.db.models.deletion.SET_NULL,
921 related_name="+",
922 to=settings.AUTH_USER_MODEL,
923 verbose_name="Last modified by",
924 ),
925 ),
926 (
927 "submission",
928 models.ForeignKey(
929 blank=True,
930 editable=False,
931 on_delete=django.db.models.deletion.CASCADE,
932 related_name="authors",
933 to="mesh.submission",
934 ),
935 ),
936 ],
937 ),
938 migrations.CreateModel(
939 name="SubmissionAdditionalFile",
940 fields=[
941 (
942 "id",
943 models.BigAutoField(
944 auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
945 ),
946 ),
947 (
948 "date_created",
949 models.DateTimeField(
950 blank=True,
951 default=django.utils.timezone.now,
952 editable=False,
953 null=True,
954 verbose_name="Creation date",
955 ),
956 ),
957 (
958 "date_last_modified",
959 models.DateTimeField(
960 blank=True,
961 default=django.utils.timezone.now,
962 editable=False,
963 null=True,
964 verbose_name="Last modification date",
965 ),
966 ),
967 (
968 "file",
969 models.FileField(
970 max_length=1024,
971 storage=mesh.model.file_helpers.MeshFileSystemStorage,
972 upload_to=mesh.models.file_models.get_upload_path_from_model,
973 ),
974 ),
975 ("name", models.CharField(blank=True, max_length=256)),
976 (
977 "attached_to",
978 models.ForeignKey(
979 on_delete=django.db.models.deletion.CASCADE,
980 related_name="additional_files",
981 to="mesh.submissionversion",
982 ),
983 ),
984 (
985 "created_by",
986 models.ForeignKey(
987 blank=True,
988 editable=False,
989 help_text="Automatically filled on save.",
990 null=True,
991 on_delete=django.db.models.deletion.SET_NULL,
992 related_name="+",
993 to=settings.AUTH_USER_MODEL,
994 verbose_name="Created by",
995 ),
996 ),
997 (
998 "last_modified_by",
999 models.ForeignKey(
1000 blank=True,
1001 editable=False,
1002 help_text="Automatically filled on save.",
1003 null=True,
1004 on_delete=django.db.models.deletion.SET_NULL,
1005 related_name="+",
1006 to=settings.AUTH_USER_MODEL,
1007 verbose_name="Last modified by",
1008 ),
1009 ),
1010 ],
1011 options={
1012 "abstract": False,
1013 },
1014 ),
1015 migrations.CreateModel(
1016 name="ReviewAdditionalFile",
1017 fields=[
1018 (
1019 "id",
1020 models.BigAutoField(
1021 auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
1022 ),
1023 ),
1024 (
1025 "date_created",
1026 models.DateTimeField(
1027 blank=True,
1028 default=django.utils.timezone.now,
1029 editable=False,
1030 null=True,
1031 verbose_name="Creation date",
1032 ),
1033 ),
1034 (
1035 "date_last_modified",
1036 models.DateTimeField(
1037 blank=True,
1038 default=django.utils.timezone.now,
1039 editable=False,
1040 null=True,
1041 verbose_name="Last modification date",
1042 ),
1043 ),
1044 (
1045 "file",
1046 models.FileField(
1047 max_length=1024,
1048 storage=mesh.model.file_helpers.MeshFileSystemStorage,
1049 upload_to=mesh.models.file_models.get_upload_path_from_model,
1050 ),
1051 ),
1052 ("name", models.CharField(blank=True, max_length=256)),
1053 ("author_access", models.BooleanField(default=False)),
1054 (
1055 "attached_to",
1056 models.ForeignKey(
1057 on_delete=django.db.models.deletion.CASCADE,
1058 related_name="additional_files",
1059 to="mesh.review",
1060 ),
1061 ),
1062 (
1063 "created_by",
1064 models.ForeignKey(
1065 blank=True,
1066 editable=False,
1067 help_text="Automatically filled on save.",
1068 null=True,
1069 on_delete=django.db.models.deletion.SET_NULL,
1070 related_name="+",
1071 to=settings.AUTH_USER_MODEL,
1072 verbose_name="Created by",
1073 ),
1074 ),
1075 (
1076 "last_modified_by",
1077 models.ForeignKey(
1078 blank=True,
1079 editable=False,
1080 help_text="Automatically filled on save.",
1081 null=True,
1082 on_delete=django.db.models.deletion.SET_NULL,
1083 related_name="+",
1084 to=settings.AUTH_USER_MODEL,
1085 verbose_name="Last modified by",
1086 ),
1087 ),
1088 ],
1089 options={
1090 "abstract": False,
1091 },
1092 ),
1093 migrations.AddField(
1094 model_name="review",
1095 name="version",
1096 field=models.ForeignKey(
1097 blank=True,
1098 help_text="Automatically filled on save",
1099 on_delete=django.db.models.deletion.CASCADE,
1100 related_name="reviews",
1101 to="mesh.submissionversion",
1102 ),
1103 ),
1104 migrations.CreateModel(
1105 name="EditorSubmissionRight",
1106 fields=[
1107 (
1108 "id",
1109 models.BigAutoField(
1110 auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
1111 ),
1112 ),
1113 (
1114 "date_created",
1115 models.DateTimeField(
1116 blank=True,
1117 default=django.utils.timezone.now,
1118 editable=False,
1119 null=True,
1120 verbose_name="Creation date",
1121 ),
1122 ),
1123 (
1124 "date_last_modified",
1125 models.DateTimeField(
1126 blank=True,
1127 default=django.utils.timezone.now,
1128 editable=False,
1129 null=True,
1130 verbose_name="Last modification date",
1131 ),
1132 ),
1133 (
1134 "created_by",
1135 models.ForeignKey(
1136 blank=True,
1137 editable=False,
1138 help_text="Automatically filled on save.",
1139 null=True,
1140 on_delete=django.db.models.deletion.SET_NULL,
1141 related_name="+",
1142 to=settings.AUTH_USER_MODEL,
1143 verbose_name="Created by",
1144 ),
1145 ),
1146 (
1147 "last_modified_by",
1148 models.ForeignKey(
1149 blank=True,
1150 editable=False,
1151 help_text="Automatically filled on save.",
1152 null=True,
1153 on_delete=django.db.models.deletion.SET_NULL,
1154 related_name="+",
1155 to=settings.AUTH_USER_MODEL,
1156 verbose_name="Last modified by",
1157 ),
1158 ),
1159 (
1160 "submission",
1161 models.ForeignKey(
1162 on_delete=django.db.models.deletion.CASCADE,
1163 related_name="editors",
1164 to="mesh.submission",
1165 verbose_name="Submission",
1166 ),
1167 ),
1168 (
1169 "user",
1170 models.ForeignKey(
1171 on_delete=django.db.models.deletion.CASCADE,
1172 related_name="editor_submissions",
1173 to=settings.AUTH_USER_MODEL,
1174 ),
1175 ),
1176 ],
1177 ),
1178 migrations.CreateModel(
1179 name="EditorSectionRight",
1180 fields=[
1181 (
1182 "id",
1183 models.BigAutoField(
1184 auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
1185 ),
1186 ),
1187 (
1188 "date_created",
1189 models.DateTimeField(
1190 blank=True,
1191 default=django.utils.timezone.now,
1192 editable=False,
1193 null=True,
1194 verbose_name="Creation date",
1195 ),
1196 ),
1197 (
1198 "date_last_modified",
1199 models.DateTimeField(
1200 blank=True,
1201 default=django.utils.timezone.now,
1202 editable=False,
1203 null=True,
1204 verbose_name="Last modification date",
1205 ),
1206 ),
1207 (
1208 "created_by",
1209 models.ForeignKey(
1210 blank=True,
1211 editable=False,
1212 help_text="Automatically filled on save.",
1213 null=True,
1214 on_delete=django.db.models.deletion.SET_NULL,
1215 related_name="+",
1216 to=settings.AUTH_USER_MODEL,
1217 verbose_name="Created by",
1218 ),
1219 ),
1220 (
1221 "journal_section",
1222 models.ForeignKey(
1223 on_delete=django.db.models.deletion.CASCADE,
1224 related_name="editors",
1225 to="mesh.journalsection",
1226 verbose_name="Journal Section",
1227 ),
1228 ),
1229 (
1230 "last_modified_by",
1231 models.ForeignKey(
1232 blank=True,
1233 editable=False,
1234 help_text="Automatically filled on save.",
1235 null=True,
1236 on_delete=django.db.models.deletion.SET_NULL,
1237 related_name="+",
1238 to=settings.AUTH_USER_MODEL,
1239 verbose_name="Last modified by",
1240 ),
1241 ),
1242 (
1243 "user",
1244 models.ForeignKey(
1245 on_delete=django.db.models.deletion.CASCADE,
1246 related_name="editor_sections",
1247 to=settings.AUTH_USER_MODEL,
1248 ),
1249 ),
1250 ],
1251 options={
1252 "abstract": False,
1253 },
1254 ),
1255 migrations.CreateModel(
1256 name="EditorialDecisionFile",
1257 fields=[
1258 (
1259 "id",
1260 models.BigAutoField(
1261 auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
1262 ),
1263 ),
1264 (
1265 "date_created",
1266 models.DateTimeField(
1267 blank=True,
1268 default=django.utils.timezone.now,
1269 editable=False,
1270 null=True,
1271 verbose_name="Creation date",
1272 ),
1273 ),
1274 (
1275 "date_last_modified",
1276 models.DateTimeField(
1277 blank=True,
1278 default=django.utils.timezone.now,
1279 editable=False,
1280 null=True,
1281 verbose_name="Last modification date",
1282 ),
1283 ),
1284 (
1285 "file",
1286 models.FileField(
1287 max_length=1024,
1288 storage=mesh.model.file_helpers.MeshFileSystemStorage,
1289 upload_to=mesh.models.file_models.get_upload_path_from_model,
1290 ),
1291 ),
1292 ("name", models.CharField(blank=True, max_length=256)),
1293 (
1294 "attached_to",
1295 models.ForeignKey(
1296 on_delete=django.db.models.deletion.CASCADE,
1297 related_name="additional_files",
1298 to="mesh.editorialdecision",
1299 ),
1300 ),
1301 (
1302 "created_by",
1303 models.ForeignKey(
1304 blank=True,
1305 editable=False,
1306 help_text="Automatically filled on save.",
1307 null=True,
1308 on_delete=django.db.models.deletion.SET_NULL,
1309 related_name="+",
1310 to=settings.AUTH_USER_MODEL,
1311 verbose_name="Created by",
1312 ),
1313 ),
1314 (
1315 "last_modified_by",
1316 models.ForeignKey(
1317 blank=True,
1318 editable=False,
1319 help_text="Automatically filled on save.",
1320 null=True,
1321 on_delete=django.db.models.deletion.SET_NULL,
1322 related_name="+",
1323 to=settings.AUTH_USER_MODEL,
1324 verbose_name="Last modified by",
1325 ),
1326 ),
1327 ],
1328 options={
1329 "abstract": False,
1330 },
1331 ),
1332 migrations.AddField(
1333 model_name="editorialdecision",
1334 name="version",
1335 field=models.OneToOneField(
1336 editable=False,
1337 on_delete=django.db.models.deletion.CASCADE,
1338 related_name="editorial_decision",
1339 to="mesh.submissionversion",
1340 ),
1341 ),
1342 migrations.AddConstraint(
1343 model_name="submissionversion",
1344 constraint=models.UniqueConstraint(
1345 fields=("submission", "number"), name="unique_submission_version_number"
1346 ),
1347 ),
1348 migrations.AddConstraint(
1349 model_name="submissionversion",
1350 constraint=models.UniqueConstraint(
1351 condition=models.Q(("review_open", True)),
1352 fields=("submission",),
1353 name="unique_review_open_submission_version",
1354 ),
1355 ),
1356 migrations.AddField(
1357 model_name="submissionmainfile",
1358 name="created_by",
1359 field=models.ForeignKey(
1360 blank=True,
1361 editable=False,
1362 help_text="Automatically filled on save.",
1363 null=True,
1364 on_delete=django.db.models.deletion.SET_NULL,
1365 related_name="+",
1366 to=settings.AUTH_USER_MODEL,
1367 verbose_name="Created by",
1368 ),
1369 ),
1370 migrations.AddField(
1371 model_name="submissionmainfile",
1372 name="last_modified_by",
1373 field=models.ForeignKey(
1374 blank=True,
1375 editable=False,
1376 help_text="Automatically filled on save.",
1377 null=True,
1378 on_delete=django.db.models.deletion.SET_NULL,
1379 related_name="+",
1380 to=settings.AUTH_USER_MODEL,
1381 verbose_name="Last modified by",
1382 ),
1383 ),
1384 migrations.AddConstraint(
1385 model_name="submissionauthor",
1386 constraint=models.UniqueConstraint(
1387 fields=("submission", "email"), name="unique_author_email_per_submission"
1388 ),
1389 ),
1390 migrations.AddConstraint(
1391 model_name="submission",
1392 constraint=models.UniqueConstraint(
1393 fields=("created_by", "name"), name="unique_submission_name_per_user"
1394 ),
1395 ),
1396 migrations.AddConstraint(
1397 model_name="review",
1398 constraint=models.UniqueConstraint(
1399 fields=("version", "reviewer"), name="unique_reviewer_per_round"
1400 ),
1401 ),
1402 migrations.AddConstraint(
1403 model_name="editorsubmissionright",
1404 constraint=models.UniqueConstraint(
1405 fields=("user", "submission"), name="unique_submission_per_editor"
1406 ),
1407 ),
1408 ]