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