diff --git a/CHANGELOG.md b/CHANGELOG.md index 859c8846..35579982 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,11 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## Unreleased +## v1.2.12 (2023-04-18) + +### Changed + +- Move `alerts_alertgroup.is_restricted` column to `alerts_alertreceivechannel.restricted_at` by @joeyorlando ([#1770](https://github.com/grafana/oncall/pull/1770)) ### Added diff --git a/engine/apps/alerts/migrations/0012_auto_20230406_1010.py b/engine/apps/alerts/migrations/0012_auto_20230406_1010.py index 666b5c49..59136798 100644 --- a/engine/apps/alerts/migrations/0012_auto_20230406_1010.py +++ b/engine/apps/alerts/migrations/0012_auto_20230406_1010.py @@ -10,11 +10,6 @@ class Migration(migrations.Migration): ] operations = [ - # migrations.AddField( - # model_name='alertgroup', - # name='is_restricted', - # field=models.BooleanField(default=False, null=True), - # ), migrations.AlterField( model_name='alertgrouplogrecord', name='type', diff --git a/engine/apps/alerts/migrations/0014_alertreceivechannel_restricted_at.py b/engine/apps/alerts/migrations/0014_alertreceivechannel_restricted_at.py new file mode 100644 index 00000000..e7b2e1ec --- /dev/null +++ b/engine/apps/alerts/migrations/0014_alertreceivechannel_restricted_at.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.18 on 2023-04-18 05:03 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('alerts', '0013_merge_20230418_0336'), + ] + + operations = [ + migrations.AddField( + model_name='alertreceivechannel', + name='restricted_at', + field=models.DateTimeField(default=None, null=True), + ), + ] diff --git a/engine/apps/alerts/models/alert_group.py b/engine/apps/alerts/models/alert_group.py index 49c60498..4d71eb0a 100644 --- a/engine/apps/alerts/models/alert_group.py +++ b/engine/apps/alerts/models/alert_group.py @@ -352,11 +352,12 @@ class AlertGroup(AlertGroupSlackRenderingMixin, EscalationSnapshotMixin, models. # https://code.djangoproject.com/ticket/28545 is_open_for_grouping = models.BooleanField(default=None, null=True, blank=True) - # is_restricted = models.BooleanField(default=False, null=True) - @property def is_restricted(self): - return False + integration_restricted_at = self.channel.restricted_at + if integration_restricted_at is None: + return False + return self.started_at >= integration_restricted_at @staticmethod def get_silenced_state_filter(): diff --git a/engine/apps/alerts/models/alert_receive_channel.py b/engine/apps/alerts/models/alert_receive_channel.py index e26e762a..94db5d00 100644 --- a/engine/apps/alerts/models/alert_receive_channel.py +++ b/engine/apps/alerts/models/alert_receive_channel.py @@ -187,6 +187,8 @@ class AlertReceiveChannel(IntegrationOptionsMixin, MaintainableObject): rate_limited_in_slack_at = models.DateTimeField(null=True, default=None) rate_limit_message_task_id = models.CharField(max_length=100, null=True, default=None) + restricted_at = models.DateTimeField(null=True, default=None) + class Meta: constraints = [ models.UniqueConstraint(