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

1# Generated by Django 4.2.26 on 2026-04-24 14:20 

2 

3import django.db.models.deletion 

4import django.utils.timezone 

5from django.conf import settings 

6from django.db import migrations, models 

7 

8import mesh.models.file_helpers 

9import mesh.models.orm.file_models 

10import mesh.models.orm.user_models 

11 

12 

13class Migration(migrations.Migration): 

14 initial = True 

15 

16 dependencies = [ 

17 ("auth", "0012_alter_user_first_name_max_length"), 

18 ] 

19 

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 ]