Skip to content
Snippets Groups Projects
Verified Commit 01e18445 authored by Lloyd Meins's avatar Lloyd Meins :thought_balloon: Committed by Nik | Klampfradler
Browse files

Ensure uniqueness per site

parent bd9d127d
No related branches found
No related tags found
No related merge requests found
......@@ -6,6 +6,14 @@ All notable changes to this project will be documented in this file.
The format is based on `Keep a Changelog`_,
and this project adheres to `Semantic Versioning`_.
Unreleased
----------
Changed
~~~~~~~~
* Ensure uniqueness per site of FAQ sections and categories.
`2.0b0`_ - 2021-05-21
---------------------
......
# Generated by Django 3.2.3 on 2021-05-28 23:05
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('hjelp', '0003_faqsection_position_and_show'),
]
operations = [
migrations.AlterModelOptions(
name='faqsection',
options={'ordering': ['position'], 'verbose_name': 'FAQ section', 'verbose_name_plural': 'FAQ sections'},
),
migrations.AlterModelOptions(
name='hjelpglobalpermissions',
options={'managed': False, 'permissions': (('view_faq', 'Can view FAQ'), ('ask_faq', 'Can ask FAQ question'), ('report_issue', 'Can report issues'), ('send_feedback', 'Can send feedback'))},
),
migrations.AlterField(
model_name='faqsection',
name='name',
field=models.CharField(max_length=255, verbose_name='Name'),
),
migrations.AlterField(
model_name='faqsection',
name='position',
field=models.PositiveIntegerField(blank=True, default=1, verbose_name='Order'),
),
migrations.AlterField(
model_name='issuecategory',
name='name',
field=models.CharField(max_length=255, verbose_name='Name'),
),
migrations.AlterField(
model_name='issuecategory',
name='placeholder',
field=models.CharField(blank=True, max_length=255, verbose_name='Placeholder'),
),
migrations.AddConstraint(
model_name='faqsection',
constraint=models.UniqueConstraint(fields=('site_id', 'name'), name='unique_section_name_per_site'),
),
migrations.AddConstraint(
model_name='issuecategory',
constraint=models.UniqueConstraint(fields=('site_id', 'name'), name='unique_category_name_per_site'),
),
]
......@@ -37,6 +37,10 @@ class FAQSection(ExtensibleModel):
verbose_name_plural = _("FAQ sections")
ordering = ["position"]
constraints = [
models.UniqueConstraint(fields=["site_id", "name"], name="unique_section_name_per_site")
]
@property
def visible_questions(self):
return self.questions.filter(show=True)
......@@ -95,3 +99,9 @@ class IssueCategory(ExtensibleModel):
class Meta:
verbose_name = _("Issue category")
verbose_name_plural = _("Issue categories")
constraints = [
models.UniqueConstraint(
fields=["site_id", "name"], name="unique_category_name_per_site"
)
]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment