diff options
| author | 2022-01-23 16:38:03 +0100 | |
|---|---|---|
| committer | 2022-01-23 16:38:03 +0100 | |
| commit | 605d9a0266a9a967f051fa244bf1c2d31776c119 (patch) | |
| tree | a9f3218e355c8f6a106ba2604334ce8a34823715 /pydis_site/apps/api/models | |
| parent | Link icons belong close together. (diff) | |
| parent | Merge pull request #640 from Krish-bhardwaj/main (diff) | |
Merge branch 'main' into swfarnsworth/smarter-resources/merge-with-main
Diffstat (limited to 'pydis_site/apps/api/models')
| -rw-r--r-- | pydis_site/apps/api/models/bot/bot_setting.py | 3 | ||||
| -rw-r--r-- | pydis_site/apps/api/models/bot/filter_list.py | 1 | ||||
| -rw-r--r-- | pydis_site/apps/api/models/bot/infraction.py | 4 | ||||
| -rw-r--r-- | pydis_site/apps/api/models/bot/message.py | 2 | ||||
| -rw-r--r-- | pydis_site/apps/api/models/bot/message_deletion_context.py | 4 | ||||
| -rw-r--r-- | pydis_site/apps/api/models/bot/metricity.py | 24 | ||||
| -rw-r--r-- | pydis_site/apps/api/models/bot/off_topic_channel_name.py | 9 | ||||
| -rw-r--r-- | pydis_site/apps/api/models/bot/reminder.py | 4 | ||||
| -rw-r--r-- | pydis_site/apps/api/models/utils.py | 3 | 
9 files changed, 33 insertions, 21 deletions
| diff --git a/pydis_site/apps/api/models/bot/bot_setting.py b/pydis_site/apps/api/models/bot/bot_setting.py index 2a3944f8..1bcb1ae6 100644 --- a/pydis_site/apps/api/models/bot/bot_setting.py +++ b/pydis_site/apps/api/models/bot/bot_setting.py @@ -1,4 +1,3 @@ -from django.contrib.postgres import fields as pgfields  from django.core.exceptions import ValidationError  from django.db import models @@ -24,6 +23,6 @@ class BotSetting(ModelReprMixin, models.Model):          max_length=50,          validators=(validate_bot_setting_name,)      ) -    data = pgfields.JSONField( +    data = models.JSONField(          help_text="The actual settings of this setting."      ) diff --git a/pydis_site/apps/api/models/bot/filter_list.py b/pydis_site/apps/api/models/bot/filter_list.py index d279e137..d30f7213 100644 --- a/pydis_site/apps/api/models/bot/filter_list.py +++ b/pydis_site/apps/api/models/bot/filter_list.py @@ -12,6 +12,7 @@ class FilterList(ModelTimestampMixin, ModelReprMixin, models.Model):          'FILE_FORMAT '          'DOMAIN_NAME '          'FILTER_TOKEN ' +        'REDIRECT '      )      type = models.CharField(          max_length=50, diff --git a/pydis_site/apps/api/models/bot/infraction.py b/pydis_site/apps/api/models/bot/infraction.py index 60c1e8dd..913631d4 100644 --- a/pydis_site/apps/api/models/bot/infraction.py +++ b/pydis_site/apps/api/models/bot/infraction.py @@ -57,6 +57,10 @@ class Infraction(ModelReprMixin, models.Model):          default=False,          help_text="Whether the infraction is a shadow infraction."      ) +    dm_sent = models.BooleanField( +        null=True, +        help_text="Whether a DM was sent to the user when infraction was applied." +    )      def __str__(self):          """Returns some info on the current infraction, for display purposes.""" diff --git a/pydis_site/apps/api/models/bot/message.py b/pydis_site/apps/api/models/bot/message.py index 60e2a553..bab3368d 100644 --- a/pydis_site/apps/api/models/bot/message.py +++ b/pydis_site/apps/api/models/bot/message.py @@ -48,7 +48,7 @@ class Message(ModelReprMixin, models.Model):          blank=True      )      embeds = pgfields.ArrayField( -        pgfields.JSONField( +        models.JSONField(              validators=(validate_embed,)          ),          blank=True, diff --git a/pydis_site/apps/api/models/bot/message_deletion_context.py b/pydis_site/apps/api/models/bot/message_deletion_context.py index 1410250a..25741266 100644 --- a/pydis_site/apps/api/models/bot/message_deletion_context.py +++ b/pydis_site/apps/api/models/bot/message_deletion_context.py @@ -1,5 +1,5 @@  from django.db import models -from django_hosts.resolvers import reverse +from django.urls import reverse  from pydis_site.apps.api.models.bot.user import User  from pydis_site.apps.api.models.mixins import ModelReprMixin @@ -33,7 +33,7 @@ class MessageDeletionContext(ModelReprMixin, models.Model):      @property      def log_url(self) -> str:          """Create the url for the deleted message logs.""" -        return reverse('logs', host="staff", args=(self.id,)) +        return reverse('staff:logs', args=(self.id,))      class Meta:          """Set the ordering for list views to newest first.""" diff --git a/pydis_site/apps/api/models/bot/metricity.py b/pydis_site/apps/api/models/bot/metricity.py index 00076248..abd25ef0 100644 --- a/pydis_site/apps/api/models/bot/metricity.py +++ b/pydis_site/apps/api/models/bot/metricity.py @@ -4,13 +4,13 @@ from django.db import connections  BLOCK_INTERVAL = 10 * 60  # 10 minute blocks -EXCLUDE_CHANNELS = [ +EXCLUDE_CHANNELS = (      "267659945086812160",  # Bot commands      "607247579608121354"  # SeasonalBot commands -] +) -class NotFound(Exception):  # noqa: N818 +class NotFoundError(Exception):  # noqa: N818      """Raised when an entity cannot be found."""      pass @@ -37,7 +37,7 @@ class Metricity:          values = self.cursor.fetchone()          if not values: -            raise NotFound() +            raise NotFoundError()          return dict(zip(columns, values)) @@ -46,19 +46,19 @@ class Metricity:          self.cursor.execute(              """              SELECT -              COUNT(*) +                COUNT(*)              FROM messages              WHERE -              author_id = '%s' -              AND NOT is_deleted -              AND NOT %s::varchar[] @> ARRAY[channel_id] +                author_id = '%s' +                AND NOT is_deleted +                AND channel_id NOT IN %s              """,              [user_id, EXCLUDE_CHANNELS]          )          values = self.cursor.fetchone()          if not values: -            raise NotFound() +            raise NotFoundError()          return values[0] @@ -79,7 +79,7 @@ class Metricity:                  WHERE                      author_id='%s'                      AND NOT is_deleted -                    AND NOT %s::varchar[] @> ARRAY[channel_id] +                    AND channel_id NOT IN %s                  GROUP BY interval              ) block_query;              """, @@ -88,7 +88,7 @@ class Metricity:          values = self.cursor.fetchone()          if not values: -            raise NotFound() +            raise NotFoundError()          return values[0] @@ -127,6 +127,6 @@ class Metricity:          values = self.cursor.fetchall()          if not values: -            raise NotFound() +            raise NotFoundError()          return values diff --git a/pydis_site/apps/api/models/bot/off_topic_channel_name.py b/pydis_site/apps/api/models/bot/off_topic_channel_name.py index 403c7465..e9fec114 100644 --- a/pydis_site/apps/api/models/bot/off_topic_channel_name.py +++ b/pydis_site/apps/api/models/bot/off_topic_channel_name.py @@ -11,14 +11,19 @@ class OffTopicChannelName(ModelReprMixin, models.Model):          primary_key=True,          max_length=96,          validators=( -            RegexValidator(regex=r"^[a-z0-9\U0001d5a0-\U0001d5b9-ǃ?’']+$"), +            RegexValidator(regex=r"^[a-z0-9\U0001d5a0-\U0001d5b9-ǃ?’'<>]+$"),          ),          help_text="The actual channel name that will be used on our Discord server."      )      used = models.BooleanField(          default=False, -        help_text="Whether or not this name has already been used during this rotation", +        help_text="Whether or not this name has already been used during this rotation.", +    ) + +    active = models.BooleanField( +        default=True, +        help_text="Whether or not this name should be considered for naming channels."      )      def __str__(self): diff --git a/pydis_site/apps/api/models/bot/reminder.py b/pydis_site/apps/api/models/bot/reminder.py index 7d968a0e..173900ee 100644 --- a/pydis_site/apps/api/models/bot/reminder.py +++ b/pydis_site/apps/api/models/bot/reminder.py @@ -59,6 +59,10 @@ class Reminder(ModelReprMixin, models.Model):          blank=True,          help_text="IDs of roles or users to ping with the reminder."      ) +    failures = models.IntegerField( +        default=0, +        help_text="Number of times we attempted to send the reminder and failed." +    )      def __str__(self):          """Returns some info on the current reminder, for display purposes.""" diff --git a/pydis_site/apps/api/models/utils.py b/pydis_site/apps/api/models/utils.py index 0e220a1d..859394d2 100644 --- a/pydis_site/apps/api/models/utils.py +++ b/pydis_site/apps/api/models/utils.py @@ -103,11 +103,10 @@ def validate_embed(embed: Any) -> None:      Example: -        >>> from django.contrib.postgres import fields as pgfields          >>> from django.db import models          >>> from pydis_site.apps.api.models.utils import validate_embed          >>> class MyMessage(models.Model): -        ...     embed = pgfields.JSONField( +        ...     embed = models.JSONField(          ...         validators=(          ...             validate_embed,          ...         ) | 
