diff options
Diffstat (limited to 'pydis_site')
| -rw-r--r-- | pydis_site/apps/api/migrations/0088_new_filter_schema.py | 4 | ||||
| -rw-r--r-- | pydis_site/apps/api/migrations/0089_unique_constraint_filters.py | 4 | ||||
| -rw-r--r-- | pydis_site/apps/api/models/bot/filters.py | 4 | ||||
| -rw-r--r-- | pydis_site/apps/api/serializers.py | 9 | ||||
| -rw-r--r-- | pydis_site/apps/api/tests/test_filters.py | 2 | ||||
| -rw-r--r-- | pydis_site/apps/api/tests/test_models.py | 2 | ||||
| -rw-r--r-- | pydis_site/apps/api/viewsets/bot/filters.py | 14 | 
7 files changed, 21 insertions, 18 deletions
diff --git a/pydis_site/apps/api/migrations/0088_new_filter_schema.py b/pydis_site/apps/api/migrations/0088_new_filter_schema.py index 1506e4d7..2e1d78c9 100644 --- a/pydis_site/apps/api/migrations/0088_new_filter_schema.py +++ b/pydis_site/apps/api/migrations/0088_new_filter_schema.py @@ -64,7 +64,7 @@ def forward(apps: Apps, schema_editor: BaseDatabaseSchemaEditor) -> None:                  updated_at=object_.updated_at,                  filter_list=list_,                  description=object_.comment, -                additional_field=None, +                additional_settings=None,                  guild_pings=None,                  filter_dm=None,                  dm_pings=None, @@ -105,7 +105,7 @@ class Migration(migrations.Migration):                  ('updated_at', models.DateTimeField(auto_now=True)),                  ('content', models.CharField(help_text='The definition of this filter.', max_length=100)),                  ('description', models.CharField(help_text='Why this filter has been added.', max_length=200, null=True)), -                ('additional_field', models.JSONField(help_text='Implementation specific field.', null=True)), +                ('additional_settings', models.JSONField(help_text='Additional settings which are specific to this filter.', null=True)),                  ('guild_pings', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=100), help_text='Who to ping when this filter triggers.', size=None, null=True)),                  ('filter_dm', models.BooleanField(help_text='Whether DMs should be filtered.', null=True)),                  ('dm_pings', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=100), help_text='Who to ping when this filter triggers on a DM.', size=None, null=True)), diff --git a/pydis_site/apps/api/migrations/0089_unique_constraint_filters.py b/pydis_site/apps/api/migrations/0089_unique_constraint_filters.py index 0bcfd8a3..cb230a27 100644 --- a/pydis_site/apps/api/migrations/0089_unique_constraint_filters.py +++ b/pydis_site/apps/api/migrations/0089_unique_constraint_filters.py @@ -11,13 +11,13 @@ class Migration(migrations.Migration):          migrations.RunSQL(              "ALTER TABLE api_filter "              "ADD CONSTRAINT unique_filters UNIQUE NULLS NOT DISTINCT " -            "(content, additional_field, filter_list_id, dm_content, dm_embed, infraction_type, infraction_reason, infraction_duration, infraction_channel, guild_pings, filter_dm, dm_pings, remove_context, bypass_roles, enabled, send_alert, enabled_channels, disabled_channels, enabled_categories, disabled_categories)", +            "(content, additional_settings, filter_list_id, dm_content, dm_embed, infraction_type, infraction_reason, infraction_duration, infraction_channel, guild_pings, filter_dm, dm_pings, remove_context, bypass_roles, enabled, send_alert, enabled_channels, disabled_channels, enabled_categories, disabled_categories)",              reverse_sql="ALTER TABLE api_filter DROP CONSTRAINT unique_filters",              state_operations=[                  migrations.AddConstraint(                      model_name='filter',                      constraint=models.UniqueConstraint( -                        fields=('content', 'additional_field', 'filter_list', 'dm_content', 'dm_embed', 'infraction_type', 'infraction_reason', 'infraction_duration', 'infraction_channel', 'guild_pings', 'filter_dm', 'dm_pings', 'remove_context', 'bypass_roles', 'enabled', 'send_alert', 'enabled_channels', 'disabled_channels', 'enabled_categories', 'disabled_categories'), +                        fields=('content', 'additional_settings', 'filter_list', 'dm_content', 'dm_embed', 'infraction_type', 'infraction_reason', 'infraction_duration', 'infraction_channel', 'guild_pings', 'filter_dm', 'dm_pings', 'remove_context', 'bypass_roles', 'enabled', 'send_alert', 'enabled_channels', 'disabled_channels', 'enabled_categories', 'disabled_categories'),                          name='unique_filters'                      ),                  ), diff --git a/pydis_site/apps/api/models/bot/filters.py b/pydis_site/apps/api/models/bot/filters.py index c6f6f851..aadb39aa 100644 --- a/pydis_site/apps/api/models/bot/filters.py +++ b/pydis_site/apps/api/models/bot/filters.py @@ -131,7 +131,9 @@ class FilterBase(ModelTimestampMixin, ModelReprMixin, models.Model):          max_length=200,          help_text="Why this filter has been added.", null=True      ) -    additional_field = models.JSONField(null=True, help_text="Implementation specific field.") +    additional_settings = models.JSONField( +        null=True, help_text="Additional settings which are specific to this filter." +    )      filter_list = models.ForeignKey(          FilterList, models.CASCADE, related_name="filters",          help_text="The filter list containing this filter." diff --git a/pydis_site/apps/api/serializers.py b/pydis_site/apps/api/serializers.py index da02c837..a3779094 100644 --- a/pydis_site/apps/api/serializers.py +++ b/pydis_site/apps/api/serializers.py @@ -184,7 +184,7 @@ ALLOW_EMPTY_SETTINGS = (  # Required fields for custom JSON representation purposes  BASE_FILTER_FIELDS = ( -    'id', 'created_at', 'updated_at', 'content', 'description', 'additional_field' +    'id', 'created_at', 'updated_at', 'content', 'description', 'additional_settings'  )  BASE_FILTERLIST_FIELDS = ('id', 'created_at', 'updated_at', 'name', 'list_type')  BASE_SETTINGS_FIELDS = ( @@ -279,7 +279,7 @@ class FilterSerializer(ModelSerializer):              'updated_at',              'content',              'description', -            'additional_field', +            'additional_settings',              'filter_list'          ) + SETTINGS_FIELDS          extra_kwargs = _create_meta_extra_kwargs(for_filter=True) @@ -382,9 +382,10 @@ class FilterListSerializer(ModelSerializer):          Provides a custom JSON representation to the FilterList Serializers.          This representation restructures how the Filter is represented. -        It groups the Infraction, Channel and Mention related fields into their own separated group. +        It groups the Infraction, Channel, and Mention related fields +        into their own separated groups. -        Furthermore, it puts the fields that meant to represent FilterList settings, +        Furthermore, it puts the fields that are meant to represent FilterList settings,          into a sub-field called `settings`.          """          schema = {name: getattr(instance, name) for name in BASE_FILTERLIST_FIELDS} diff --git a/pydis_site/apps/api/tests/test_filters.py b/pydis_site/apps/api/tests/test_filters.py index f36e0617..3d3be51e 100644 --- a/pydis_site/apps/api/tests/test_filters.py +++ b/pydis_site/apps/api/tests/test_filters.py @@ -92,7 +92,7 @@ def get_test_sequences() -> Dict[str, TestSequence]:              {                  "content": "bad word",                  "description": "This is a really bad word.", -                "additional_field": "{'hi': 'there'}", +                "additional_settings": "{'hi': 'there'}",                  "guild_pings": None,                  "filter_dm": None,                  "dm_pings": None, diff --git a/pydis_site/apps/api/tests/test_models.py b/pydis_site/apps/api/tests/test_models.py index 25d771cc..d3341b35 100644 --- a/pydis_site/apps/api/tests/test_models.py +++ b/pydis_site/apps/api/tests/test_models.py @@ -113,7 +113,7 @@ class StringDunderMethodTests(SimpleTestCase):              Filter(                  content="ducky_nsfw",                  description="This ducky is totally inappropriate!", -                additional_field=None, +                additional_settings=None,              ),              OffensiveMessage(                  id=602951077675139072, diff --git a/pydis_site/apps/api/viewsets/bot/filters.py b/pydis_site/apps/api/viewsets/bot/filters.py index c84da909..d6c2d18c 100644 --- a/pydis_site/apps/api/viewsets/bot/filters.py +++ b/pydis_site/apps/api/viewsets/bot/filters.py @@ -33,7 +33,7 @@ class FilterListViewSet(ModelViewSet):      ...                 "updated_at": "2023-01-27T21:26:34.030532Z",      ...                 "content": "267624335836053506",      ...                 "description": "Python Discord", -    ...                 "additional_field": None, +    ...                 "additional_settings": None,      ...                 "filter_list": 1,      ...                 "settings": {      ...                     "bypass_roles": None, @@ -119,7 +119,7 @@ class FilterListViewSet(ModelViewSet):      ...             "updated_at": "2023-01-27T21:26:34.030532Z",      ...             "content": "267624335836053506",      ...             "description": "Python Discord", -    ...             "additional_field": None, +    ...             "additional_settings": None,      ...             "filter_list": 1,      ...             "settings": {      ...                 "bypass_roles": None, @@ -239,7 +239,7 @@ class FilterListViewSet(ModelViewSet):      ...             "updated_at": "2023-01-27T21:26:34.030532Z",      ...             "content": "267624335836053506",      ...             "description": "Python Discord", -    ...             "additional_field": None, +    ...             "additional_settings": None,      ...             "filter_list": 1,      ...             "settings": {      ...                 "bypass_roles": None, @@ -334,7 +334,7 @@ class FilterViewSet(ModelViewSet):      ...         "updated_at": "2023-01-27T21:26:34.030532Z",      ...         "content": "267624335836053506",      ...         "description": "Python Discord", -    ...         "additional_field": None, +    ...         "additional_settings": None,      ...         "filter_list": 1,      ...         "settings": {      ...             "bypass_roles": None, @@ -379,7 +379,7 @@ class FilterViewSet(ModelViewSet):      ...     "updated_at": "2023-01-27T21:26:34.030532Z",      ...     "content": "267624335836053506",      ...     "description": "Python Discord", -    ...     "additional_field": None, +    ...     "additional_settings": None,      ...     "filter_list": 1,      ...     "settings": {      ...         "bypass_roles": None, @@ -420,7 +420,7 @@ class FilterViewSet(ModelViewSet):      ...     "filter_list": 1,      ...     "content": "267624335836053506",      ...     "description": "Python Discord", -    ...     "additional_field": None, +    ...     "additional_settings": None,      ...     "bypass_roles": None,      ...     "filter_dm": None,      ...     "enabled": False, @@ -454,7 +454,7 @@ class FilterViewSet(ModelViewSet):      ...     "updated_at": "2023-01-27T21:26:34.030532Z",      ...     "content": "267624335836053506",      ...     "description": "Python Discord", -    ...     "additional_field": None, +    ...     "additional_settings": None,      ...     "filter_list": 1,      ...     "settings": {      ...         "bypass_roles": None,  |