From ac26ea4a03abceb96af28f6e19a0712b37cb892a Mon Sep 17 00:00:00 2001 From: dartcafe Date: Sun, 24 Aug 2025 08:50:37 +0200 Subject: [PATCH 1/7] use correct table name Signed-off-by: dartcafe --- lib/Command/Db/Rebuild.php | 1 + lib/Db/V2/TableManager.php | 72 +++++++------------------------------- 2 files changed, 13 insertions(+), 60 deletions(-) diff --git a/lib/Command/Db/Rebuild.php b/lib/Command/Db/Rebuild.php index 9d7f83aa3d..f37c8681b0 100644 --- a/lib/Command/Db/Rebuild.php +++ b/lib/Command/Db/Rebuild.php @@ -99,6 +99,7 @@ private function fixNullish(): void { $messages = $this->tableManager->fixNullishPollGroupRelations(); $this->printInfo($messages, ' '); } + /** * Create index for $table */ diff --git a/lib/Db/V2/TableManager.php b/lib/Db/V2/TableManager.php index 1da89ab766..4798ccb054 100644 --- a/lib/Db/V2/TableManager.php +++ b/lib/Db/V2/TableManager.php @@ -29,9 +29,6 @@ class TableManager extends DbManager { - // private string $dbPrefix; - // private Schema|ISchemaWrapper $schema; - /** @psalm-suppress PossiblyUnusedMethod */ public function __construct( protected IConfig $config, @@ -41,27 +38,8 @@ public function __construct( private VoteMapper $voteMapper, ) { parent::__construct($config, $connection); - // $this->dbPrefix = $this->config->getSystemValue('dbtableprefix', 'oc_'); } - // public function setSchema(Schema|ISchemaWrapper &$schema): void { - // $this->schema = $schema; - // } - - // public function createSchema(): Schema { - // $this->schema = $this->connection->createSchema(); - // return $this->schema; - // } - // public function migrateToSchema() : void { - // // Schema must be of class Schema - // $this->needsSchema(iSchemWrapperClass: false); - // $this->connection->migrateToSchema($this->schema); - // } - - // public function setConnection(IDBConnection &$connection): void { - // $this->connection = $connection; - // } - /** * @return string[] * @@ -463,24 +441,24 @@ public function fixNullishShares(): array { $messages = []; $query = $this->connection->getQueryBuilder(); $schema = $this->connection->createSchema(); + $prefixedTable = $this->dbPrefix . Share::TABLE; - if (!$schema->hasTable(Share::TABLE)) { - $messages[] = 'Table ' . Share::TABLE . ' does not exist'; + if (!$schema->hasTable($this->dbPrefix . Share::TABLE)) { + $messages[] = 'Table ' . $this->dbPrefix . Share::TABLE . ' does not exist'; return $messages; } - $table = $schema->getTable(Share::TABLE); + $table = $schema->getTable($this->dbPrefix . Share::TABLE); if ($table->hasColumn('group_id')) { // replace all nullish group_ids with 0 in share table $query->update(Share::TABLE) ->set('group_id', $query->createNamedParameter(0, IQueryBuilder::PARAM_INT)) ->where($query->expr()->isNull('group_id')); - $count = $query->executeStatement(); if ($count > 0) { - $messages[] = 'Updated ' . $count . ' shares and set group_id to 0 for nullish values'; + $messages[] = 'Updated ' . $count . ' shares with nullish group_id and set group_id to 0'; } } @@ -506,6 +484,13 @@ public function fixNullishShares(): array { public function fixNullishPollGroupRelations(): array { $messages = []; $query = $this->connection->getQueryBuilder(); + $schema = $this->connection->createSchema(); + $prefixedTable = $this->dbPrefix . PollGroup::RELATION_TABLE; + + if (!$schema->hasTable($prefixedTable)) { + $messages[] = 'Table ' . $prefixedTable . ' does not exist'; + return $messages; + } // replace all nullish group_ids with 0 in share table $query->update(PollGroup::RELATION_TABLE) @@ -611,37 +596,4 @@ public function migrateOptionsToHash(): array { } return $messages; } - - // protected function getTableName(string $tableName): ?string { - // if ($this->schema instanceof Schema) { - // // If the schema is an instance of Schema, we need to prefix the table name - // return $this->config->getSystemValue('dbtableprefix', 'oc_') . $tableName; - // } - // return $tableName; - // } - - // protected function needsSchema(bool $schemaClass = true, bool $iSchemWrapperClass = true): void { - // if (($this->schema instanceof Schema) && $schemaClass) { - // return; - // } - - // if (($this->schema instanceof ISchemaWrapper) && $iSchemWrapperClass) { - // return; - // } - - // if ($schemaClass && $iSchemWrapperClass) { - // // If the schema is not set or not an instance of Schema or ISchemaWrapper, throw an exception - // throw new Exception('Schema is not set or not an instance of Schema or ISchemaWrapper'); - // } - // if ($schemaClass) { - // // If the schema is not set or not an instance of Schema, throw an exception - // throw new Exception('Schema is not set or not an instance of Schema'); - // } - // if ($iSchemWrapperClass) { - // // If the schema is not set or not an instance of ISchemaWrapper, throw an exception - // throw new Exception('Schema is not set or not an instance of ISchemaWrapper'); - // } - // throw new Exception('Unexpected. Schema is an instance of ' . get_class($this->schema)); - // } - } From 7e01704e1edc1d7f88468434d6f8f313b9cb9ea7 Mon Sep 17 00:00:00 2001 From: dartcafe Date: Sun, 24 Aug 2025 08:57:22 +0200 Subject: [PATCH 2/7] fix Signed-off-by: dartcafe --- lib/Db/V2/TableManager.php | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/lib/Db/V2/TableManager.php b/lib/Db/V2/TableManager.php index 4798ccb054..f9714ce0fd 100644 --- a/lib/Db/V2/TableManager.php +++ b/lib/Db/V2/TableManager.php @@ -441,7 +441,6 @@ public function fixNullishShares(): array { $messages = []; $query = $this->connection->getQueryBuilder(); $schema = $this->connection->createSchema(); - $prefixedTable = $this->dbPrefix . Share::TABLE; if (!$schema->hasTable($this->dbPrefix . Share::TABLE)) { $messages[] = 'Table ' . $this->dbPrefix . Share::TABLE . ' does not exist'; @@ -485,10 +484,9 @@ public function fixNullishPollGroupRelations(): array { $messages = []; $query = $this->connection->getQueryBuilder(); $schema = $this->connection->createSchema(); - $prefixedTable = $this->dbPrefix . PollGroup::RELATION_TABLE; - if (!$schema->hasTable($prefixedTable)) { - $messages[] = 'Table ' . $prefixedTable . ' does not exist'; + if (!$schema->hasTable($this->dbPrefix . PollGroup::RELATION_TABLE)) { + $messages[] = 'Table ' . $this->dbPrefix . PollGroup::RELATION_TABLE . ' does not exist'; return $messages; } From c7e9aa4ab4fa0b861153609a9a776a11677ed2d2 Mon Sep 17 00:00:00 2001 From: Nextcloud bot Date: Sun, 24 Aug 2025 01:23:38 +0000 Subject: [PATCH 3/7] fix(l10n): Update translations from Transifex Signed-off-by: Nextcloud bot --- l10n/be.js | 3 +++ l10n/be.json | 3 +++ l10n/it.js | 5 +++++ l10n/it.json | 5 +++++ l10n/uk.js | 5 +++++ l10n/uk.json | 5 +++++ 6 files changed, 26 insertions(+) diff --git a/l10n/be.js b/l10n/be.js index 2d76f343bb..584b5d8d2f 100644 --- a/l10n/be.js +++ b/l10n/be.js @@ -21,6 +21,8 @@ OC.L10N.register( "Participants" : "Удзельнікі", "Email address" : "Адрас электроннай пошты", "OK" : "OK", + "Duration" : "Працягласць", + "Preview" : "Перадпрагляд", "Submit" : "Адправіць", "{optionText} already exists" : "{optionText} ужо існуе", "never" : "ніколі", @@ -41,6 +43,7 @@ OC.L10N.register( "Comments" : "Каментарыі", "Sharing" : "Абагульванне", "Activity" : "Актыўнасць", + "Access" : "Доступ", "Owner" : "Уладальнік" }, "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"); diff --git a/l10n/be.json b/l10n/be.json index 9302151414..3b0c6287cb 100644 --- a/l10n/be.json +++ b/l10n/be.json @@ -19,6 +19,8 @@ "Participants" : "Удзельнікі", "Email address" : "Адрас электроннай пошты", "OK" : "OK", + "Duration" : "Працягласць", + "Preview" : "Перадпрагляд", "Submit" : "Адправіць", "{optionText} already exists" : "{optionText} ужо існуе", "never" : "ніколі", @@ -39,6 +41,7 @@ "Comments" : "Каментарыі", "Sharing" : "Абагульванне", "Activity" : "Актыўнасць", + "Access" : "Доступ", "Owner" : "Уладальнік" },"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);" } \ No newline at end of file diff --git a/l10n/it.js b/l10n/it.js index 9d67488f42..e69f0745c8 100644 --- a/l10n/it.js +++ b/l10n/it.js @@ -303,10 +303,13 @@ OC.L10N.register( "Delete comment" : "Elimina commento", "deleted" : "eliminato", "The automatic reminder is sent to all shares via email:" : "La promemoria automatica viene inviato a tutte le condivisioni via email:", + "For polls with expiration" : "Per sondaggi con scadenza", "48 hours before the expiration date, if the poll is created more than 5 days before the expiration." : "48 ore prima della data di scadenza, se il sondaggio viene creato più di 5 giorni prima della scadenza.", "36 hours before the expiration date, if the poll is created more than 2 and less than 5 days before the expiration." : "36 ore prima della data di scadenza, se il sondaggio viene creato più di 2 e meno di 5 giorni prima della scadenza.", + "For date polls without expiration" : "Per sondaggi con data senza scadenza", "48 hours before the first date option, if the poll is created more than 5 days before the first date option." : "48 ore prima dell'opzione della prima data, se il sondaggio viene creato più di 5 giorni prima dell'opzione della prima data.", "36 hours before the first date option, if the poll is created more than 2 and less than 5 days before the first date option." : "36 ore prima dell'opzione prima data, se il sondaggio viene creato più di 2 e meno di 5 giorni prima dell'opzione prima data.", + "No reminder is sent" : "Nessun promemoria inviato", "For text polls without expiration." : "Per sondaggi di testo senza scadenza.", "For polls created less than 2 days before the expiration." : "Per i sondaggi creati meno di 2 giorni prima della scadenza.", "If a share already got a reminder (no matter, if the expiration date got changed)." : "Se una condivisione ha già ricevuto un promemoria (indipendentemente dal fatto che la data di scadenza sia stata modificata).", @@ -605,8 +608,10 @@ OC.L10N.register( "No comments" : "Nessun commento", "Be the first." : "Sii il primo.", "Configuration" : "Configurazione", + "Comments are disabled, except for owner and delegated poll administration." : "I commenti sono disabilitati, ad eccezione per l' amministrazione del sondaggio, del proprietario e dei delegati.", "You have been granted administrative rights." : "Ti sono stati concessi diritti amministrativi.", "Changes may affect existing votes." : "Le modifiche potrebbero avere ripercussioni sulle votazioni esistenti.", + "Poll configuration" : "Configurazione del sondaggio", "Poll closing status" : "Stato di chiusura dei sondaggi", "Result display" : "Visualizzazione dei risultati", "Deletion and owner" : "Cancellazione e proprietario", diff --git a/l10n/it.json b/l10n/it.json index 90fcff68b2..17879e84eb 100644 --- a/l10n/it.json +++ b/l10n/it.json @@ -301,10 +301,13 @@ "Delete comment" : "Elimina commento", "deleted" : "eliminato", "The automatic reminder is sent to all shares via email:" : "La promemoria automatica viene inviato a tutte le condivisioni via email:", + "For polls with expiration" : "Per sondaggi con scadenza", "48 hours before the expiration date, if the poll is created more than 5 days before the expiration." : "48 ore prima della data di scadenza, se il sondaggio viene creato più di 5 giorni prima della scadenza.", "36 hours before the expiration date, if the poll is created more than 2 and less than 5 days before the expiration." : "36 ore prima della data di scadenza, se il sondaggio viene creato più di 2 e meno di 5 giorni prima della scadenza.", + "For date polls without expiration" : "Per sondaggi con data senza scadenza", "48 hours before the first date option, if the poll is created more than 5 days before the first date option." : "48 ore prima dell'opzione della prima data, se il sondaggio viene creato più di 5 giorni prima dell'opzione della prima data.", "36 hours before the first date option, if the poll is created more than 2 and less than 5 days before the first date option." : "36 ore prima dell'opzione prima data, se il sondaggio viene creato più di 2 e meno di 5 giorni prima dell'opzione prima data.", + "No reminder is sent" : "Nessun promemoria inviato", "For text polls without expiration." : "Per sondaggi di testo senza scadenza.", "For polls created less than 2 days before the expiration." : "Per i sondaggi creati meno di 2 giorni prima della scadenza.", "If a share already got a reminder (no matter, if the expiration date got changed)." : "Se una condivisione ha già ricevuto un promemoria (indipendentemente dal fatto che la data di scadenza sia stata modificata).", @@ -603,8 +606,10 @@ "No comments" : "Nessun commento", "Be the first." : "Sii il primo.", "Configuration" : "Configurazione", + "Comments are disabled, except for owner and delegated poll administration." : "I commenti sono disabilitati, ad eccezione per l' amministrazione del sondaggio, del proprietario e dei delegati.", "You have been granted administrative rights." : "Ti sono stati concessi diritti amministrativi.", "Changes may affect existing votes." : "Le modifiche potrebbero avere ripercussioni sulle votazioni esistenti.", + "Poll configuration" : "Configurazione del sondaggio", "Poll closing status" : "Stato di chiusura dei sondaggi", "Result display" : "Visualizzazione dei risultati", "Deletion and owner" : "Cancellazione e proprietario", diff --git a/l10n/uk.js b/l10n/uk.js index 463931f5aa..3f11af8e7a 100644 --- a/l10n/uk.js +++ b/l10n/uk.js @@ -303,10 +303,13 @@ OC.L10N.register( "Delete comment" : "Вилучити коментар", "deleted" : "вилучено", "The automatic reminder is sent to all shares via email:" : "Автоматичний лист-нагадування було надіслано всім, хто має права спільного доступу:", + "For polls with expiration" : "Для опитувань з терміном дії", "48 hours before the expiration date, if the poll is created more than 5 days before the expiration." : "За 48 годин до закінчення терміну дії, якщо опитування створено більш ніж за 5 днів до закінчення терміну дії.", "36 hours before the expiration date, if the poll is created more than 2 and less than 5 days before the expiration." : "За 36 годин до закінчення терміну дії, якщо опитування створено більше ніж за 2 і менше ніж за 5 днів до закінчення терміну дії.", + "For date polls without expiration" : "Для опитувань з датою без терміну дії", "48 hours before the first date option, if the poll is created more than 5 days before the first date option." : "За 48 годин до першого варіанту дати, якщо опитування створюється більш ніж за 5 днів до першого варіанту дати.", "36 hours before the first date option, if the poll is created more than 2 and less than 5 days before the first date option." : "За 36 годин до першої дати, якщо опитування створено більше ніж за 2 і менше ніж за 5 днів до першої дати.", + "No reminder is sent" : "Нагадування не надсилається", "For text polls without expiration." : "Для текстових опитувань без обмеження терміну дії.", "For polls created less than 2 days before the expiration." : "Для опитувань, створених менш ніж за 2 дні до закінчення терміну дії.", "If a share already got a reminder (no matter, if the expiration date got changed)." : "Якщо акція вже отримувала нагадування (незалежно від того, чи була змінена дата закінчення терміну дії).", @@ -605,8 +608,10 @@ OC.L10N.register( "No comments" : "Нема коментарів", "Be the first." : "Будьте першим.", "Configuration" : "Налаштування", + "Comments are disabled, except for owner and delegated poll administration." : "Коментарі вимкнені, за винятком власника та делегованого адміністратора опитування.", "You have been granted administrative rights." : "Ви отримали адміністративні права.", "Changes may affect existing votes." : "Зміни можуть вплинути на існуючі голоси.", + "Poll configuration" : "Налаштування опитування", "Poll closing status" : "Статус закриття опитування", "Result display" : "Показ результатів", "Deletion and owner" : "Видалення та власник", diff --git a/l10n/uk.json b/l10n/uk.json index 047a4ea077..8e2dc63e20 100644 --- a/l10n/uk.json +++ b/l10n/uk.json @@ -301,10 +301,13 @@ "Delete comment" : "Вилучити коментар", "deleted" : "вилучено", "The automatic reminder is sent to all shares via email:" : "Автоматичний лист-нагадування було надіслано всім, хто має права спільного доступу:", + "For polls with expiration" : "Для опитувань з терміном дії", "48 hours before the expiration date, if the poll is created more than 5 days before the expiration." : "За 48 годин до закінчення терміну дії, якщо опитування створено більш ніж за 5 днів до закінчення терміну дії.", "36 hours before the expiration date, if the poll is created more than 2 and less than 5 days before the expiration." : "За 36 годин до закінчення терміну дії, якщо опитування створено більше ніж за 2 і менше ніж за 5 днів до закінчення терміну дії.", + "For date polls without expiration" : "Для опитувань з датою без терміну дії", "48 hours before the first date option, if the poll is created more than 5 days before the first date option." : "За 48 годин до першого варіанту дати, якщо опитування створюється більш ніж за 5 днів до першого варіанту дати.", "36 hours before the first date option, if the poll is created more than 2 and less than 5 days before the first date option." : "За 36 годин до першої дати, якщо опитування створено більше ніж за 2 і менше ніж за 5 днів до першої дати.", + "No reminder is sent" : "Нагадування не надсилається", "For text polls without expiration." : "Для текстових опитувань без обмеження терміну дії.", "For polls created less than 2 days before the expiration." : "Для опитувань, створених менш ніж за 2 дні до закінчення терміну дії.", "If a share already got a reminder (no matter, if the expiration date got changed)." : "Якщо акція вже отримувала нагадування (незалежно від того, чи була змінена дата закінчення терміну дії).", @@ -603,8 +606,10 @@ "No comments" : "Нема коментарів", "Be the first." : "Будьте першим.", "Configuration" : "Налаштування", + "Comments are disabled, except for owner and delegated poll administration." : "Коментарі вимкнені, за винятком власника та делегованого адміністратора опитування.", "You have been granted administrative rights." : "Ви отримали адміністративні права.", "Changes may affect existing votes." : "Зміни можуть вплинути на існуючі голоси.", + "Poll configuration" : "Налаштування опитування", "Poll closing status" : "Статус закриття опитування", "Result display" : "Показ результатів", "Deletion and owner" : "Видалення та власник", From e997f053384c87b91e830498af724746e122c912 Mon Sep 17 00:00:00 2001 From: dartcafe Date: Sun, 24 Aug 2025 08:59:47 +0200 Subject: [PATCH 4/7] 8.3.3-alpha.1 Signed-off-by: dartcafe --- appinfo/info.xml | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/appinfo/info.xml b/appinfo/info.xml index b0acc85848..5b4033c57f 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -4,7 +4,7 @@ Polls A polls app, similar to Doodle/DuD-Poll with the possibility to restrict access. A polls app, similar to Doodle/DuD-Poll with the possibility to restrict access (members, certain groups/users, hidden and public). - 8.3.2 + 8.3.3-alpha.1 agpl Vinzenz Rosenkranz René Gieling diff --git a/package-lock.json b/package-lock.json index 4ae1026c60..7f1dff30ed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "polls", - "version": "8.3.2", + "version": "8.3.3-alpha.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "polls", - "version": "8.3.2", + "version": "8.3.3-alpha.1", "license": "AGPL-3.0", "dependencies": { "@nextcloud/auth": "^2.5.1", diff --git a/package.json b/package.json index 3d7658bfe4..3eaf179d1b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "polls", - "version": "8.3.2", + "version": "8.3.3-alpha.1", "private": true, "description": "Polls app for nextcloud", "homepage": "https://github.com/nextcloud/polls#readme", From 99e4d677f16099714ecf45f23695cd2c536fa76a Mon Sep 17 00:00:00 2001 From: dartcafe Date: Sun, 24 Aug 2025 09:01:49 +0200 Subject: [PATCH 5/7] force migration run Signed-off-by: dartcafe --- ...te20250822182903.php => Version080303Date20250824090101.php} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename lib/Migration/{Version080301Date20250822182903.php => Version080303Date20250824090101.php} (98%) diff --git a/lib/Migration/Version080301Date20250822182903.php b/lib/Migration/Version080303Date20250824090101.php similarity index 98% rename from lib/Migration/Version080301Date20250822182903.php rename to lib/Migration/Version080303Date20250824090101.php index fb1c937c89..49afe1370c 100644 --- a/lib/Migration/Version080301Date20250822182903.php +++ b/lib/Migration/Version080303Date20250824090101.php @@ -24,7 +24,7 @@ * * @psalm-suppress UnusedClass */ -class Version080301Date20250822182903 extends SimpleMigrationStep { +class Version080303Date20250824090101 extends SimpleMigrationStep { private ISchemaWrapper $schema; private ?IOutput $output = null; From fc6b3f3be9b82be4a7692fe786b5101cd550c062 Mon Sep 17 00:00:00 2001 From: dartcafe Date: Sun, 24 Aug 2025 09:02:19 +0200 Subject: [PATCH 6/7] 8.3.3-alpha.2 Signed-off-by: dartcafe --- appinfo/info.xml | 2 +- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/appinfo/info.xml b/appinfo/info.xml index 5b4033c57f..47214598a7 100644 --- a/appinfo/info.xml +++ b/appinfo/info.xml @@ -4,7 +4,7 @@ Polls A polls app, similar to Doodle/DuD-Poll with the possibility to restrict access. A polls app, similar to Doodle/DuD-Poll with the possibility to restrict access (members, certain groups/users, hidden and public). - 8.3.3-alpha.1 + 8.3.3-alpha.2 agpl Vinzenz Rosenkranz René Gieling diff --git a/package-lock.json b/package-lock.json index 7f1dff30ed..b50ca921f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "polls", - "version": "8.3.3-alpha.1", + "version": "8.3.3-alpha.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "polls", - "version": "8.3.3-alpha.1", + "version": "8.3.3-alpha.2", "license": "AGPL-3.0", "dependencies": { "@nextcloud/auth": "^2.5.1", diff --git a/package.json b/package.json index 3eaf179d1b..30f13a0662 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "polls", - "version": "8.3.3-alpha.1", + "version": "8.3.3-alpha.2", "private": true, "description": "Polls app for nextcloud", "homepage": "https://github.com/nextcloud/polls#readme", From 32fc2a4fc662af886c80e2741346ecd960aa1840 Mon Sep 17 00:00:00 2001 From: dartcafe Date: Sun, 24 Aug 2025 09:34:47 +0200 Subject: [PATCH 7/7] changelog Signed-off-by: dartcafe --- CHANGELOG.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ce24fac81..2b2cec2b5d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,8 +5,8 @@ # Changelog All notable changes to this project will be documented in this file. -## [8.3.1] - 2025-08-22 - - Fix migration from 7.x to 8.x +## [8.3.3] - 2025-08-24 + - Fix migration ### Fixed (v8.3.0) - Made description sticky again on horizontal scrolling @@ -27,6 +27,9 @@ All notable changes to this project will be documented in this file. - Make comments available to owner and delegated poll administration if commenting is disabled - Add hint, if commenting is disabled +## [8.3.2] - 2025-08-22 + - Fix migration from 7.x to 8.x + ## [8.3.0] - 2025-08-21 If you experience update problems, please refer to [this article](https://github.com/nextcloud/polls/wiki/Installation-help#update-issues)