diff --git a/assets/db/create.sql b/assets/db/create.sql index 5de5a212de..9a59e99a1e 100644 --- a/assets/db/create.sql +++ b/assets/db/create.sql @@ -217,6 +217,7 @@ CREATE TABLE `###TABLE_PREFIX###consultationFile` ( CREATE TABLE `###TABLE_PREFIX###consultationFileGroup` ( `id` int(11) NOT NULL, `consultationId` int(11) NOT NULL, + `consultationTextId` int(11) DEFAULT NULL, `parentGroupId` int(11) DEFAULT NULL, `position` int(11) NOT NULL, `title` varchar(250) NOT NULL @@ -903,7 +904,8 @@ ALTER TABLE `###TABLE_PREFIX###consultationFile` ALTER TABLE `###TABLE_PREFIX###consultationFileGroup` ADD PRIMARY KEY (`id`), ADD KEY `fk_filegroup_consultation` (`consultationId`), - ADD KEY `fk_filegroup_parent` (`parentGroupId`); + ADD KEY `fk_filegroup_parent` (`parentGroupId`), + ADD KEY `file_groups_fk_texts` (`consultationTextId`); -- -- Indexes for table `consultationLog` @@ -1407,8 +1409,9 @@ ALTER TABLE `###TABLE_PREFIX###consultationFile` -- Constraints for table `consultationFileGroup` -- ALTER TABLE `###TABLE_PREFIX###consultationFileGroup` + ADD CONSTRAINT `file_groups_fk_texts` FOREIGN KEY (`consultationTextId`) REFERENCES `###TABLE_PREFIX###consultationText` (`id`), ADD CONSTRAINT `fk_filegroup_consultation` FOREIGN KEY (`consultationId`) REFERENCES `###TABLE_PREFIX###consultation` (`id`), - ADD CONSTRAINT `fk_filegroup_parent` FOREIGN KEY (`parentGroupId`) REFERENCES `consultationFileGroup` (`id`); + ADD CONSTRAINT `fk_filegroup_parent` FOREIGN KEY (`parentGroupId`) REFERENCES `###TABLE_PREFIX###consultationFileGroup` (`id`); -- -- Constraints for table `consultationLog` diff --git a/assets/db/data.sql b/assets/db/data.sql index ef957c594e..9cb29581be 100644 --- a/assets/db/data.sql +++ b/assets/db/data.sql @@ -87,7 +87,8 @@ INSERT INTO `migration` (`version`, `apply_time`) VALUES ('m230318_132711_hierarchical_tags_with_settings', '1679146742'), ('m240406_155022_vote_weight', '1712418888'), ('m240427_090527_motion_status_index', '1714209051'), - ('m240830_181716_user_secret_key', '1725041937') + ('m240830_181716_user_secret_key', '1725041937'), + ('m241013_105549_pages_files', '1728817360') ; SET SQL_MODE = @OLD_SQL_MODE; diff --git a/assets/db/delete.sql b/assets/db/delete.sql index a0abf331be..f5dea068ed 100644 --- a/assets/db/delete.sql +++ b/assets/db/delete.sql @@ -29,10 +29,10 @@ DROP TABLE IF EXISTS `###TABLE_PREFIX###motionComment`; DROP TABLE IF EXISTS `###TABLE_PREFIX###motionCommentSupporter`; DROP TABLE IF EXISTS `###TABLE_PREFIX###motionSupporter`; DROP TABLE IF EXISTS `###TABLE_PREFIX###motionSection`; -DROP TABLE IF EXISTS `###TABLE_PREFIX###consultationText`; DROP TABLE IF EXISTS `###TABLE_PREFIX###consultationAdmin`; DROP TABLE IF EXISTS `###TABLE_PREFIX###consultationFile`; DROP TABLE IF EXISTS `###TABLE_PREFIX###consultationFileGroup`; +DROP TABLE IF EXISTS `###TABLE_PREFIX###consultationText`; DROP TABLE IF EXISTS `###TABLE_PREFIX###consultationSubscription`; DROP TABLE IF EXISTS `###TABLE_PREFIX###siteAdmin`; DROP TABLE IF EXISTS `###TABLE_PREFIX###emailLog`; diff --git a/migrations/m241013_105549_pages_files.php b/migrations/m241013_105549_pages_files.php new file mode 100644 index 0000000000..8805edfa01 --- /dev/null +++ b/migrations/m241013_105549_pages_files.php @@ -0,0 +1,24 @@ +addColumn('consultationFileGroup', 'consultationTextId', 'INT(11) NULL DEFAULT NULL AFTER `consultationId`'); + $this->addForeignKey('file_groups_fk_texts', 'consultationFileGroup', 'consultationTextId', 'consultationText', 'id'); + } + + /** + * {@inheritdoc} + */ + public function safeDown() + { + $this->dropForeignKey('file_groups_fk_texts', 'consultationFileGroup'); + $this->dropColumn('consultationFileGroup', 'consultationTextId'); + } +} diff --git a/models/db/ConsultationFileGroup.php b/models/db/ConsultationFileGroup.php index 2fbd99be24..01ef5cc833 100644 --- a/models/db/ConsultationFileGroup.php +++ b/models/db/ConsultationFileGroup.php @@ -9,6 +9,7 @@ * @property int $id * @property int $consultationId * @property int|null $parentGroupId + * @property int|null $consultationTextId * @property int $position * @property string $title * @@ -16,6 +17,7 @@ * @property Consultation $consultation * @property ConsultationFileGroup|null $parentGroup * @property ConsultationFileGroup[] $childGroups + * @property ConsultationText $consultationText */ class ConsultationFileGroup extends ActiveRecord { @@ -48,6 +50,11 @@ public function getChildGroups(): ActiveQuery return $this->hasMany(ConsultationFileGroup::class, ['parentGroupId' => 'id']); } + public function getConsultationText(): ActiveQuery + { + return $this->hasOne(ConsultationText::class, ['id' => 'consultationTextId']); + } + /** * @return ConsultationFileGroup[] */