Skip to content

Commit 86cd277

Browse files
committed
Apply suggestions
1 parent 7a81715 commit 86cd277

File tree

3 files changed

+88
-24
lines changed

3 files changed

+88
-24
lines changed
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Generated by Django 5.2.4 on 2025-08-28 16:19
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
dependencies = [
8+
("owasp", "0050_alter_event_status_event_event_type_idx"),
9+
]
10+
11+
operations = [
12+
migrations.RemoveIndex(
13+
model_name="event",
14+
name="event_type_idx",
15+
),
16+
migrations.RemoveField(
17+
model_name="event",
18+
name="channel_id",
19+
),
20+
migrations.RemoveField(
21+
model_name="event",
22+
name="member",
23+
),
24+
migrations.RemoveField(
25+
model_name="event",
26+
name="type",
27+
),
28+
migrations.AlterField(
29+
model_name="event",
30+
name="category",
31+
field=models.CharField(
32+
choices=[
33+
("appsec_days", "AppSec Days"),
34+
("global", "Global"),
35+
("other", "Other"),
36+
("partner", "Partner"),
37+
("community", "Community"),
38+
],
39+
default="other",
40+
max_length=11,
41+
verbose_name="Category",
42+
),
43+
),
44+
migrations.AlterField(
45+
model_name="event",
46+
name="status",
47+
field=models.CharField(
48+
choices=[("confirmed", "Confirmed")],
49+
default="confirmed",
50+
max_length=11,
51+
verbose_name="Status",
52+
),
53+
),
54+
]

backend/apps/owasp/models/event.py

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ class Meta:
2929
db_table = "owasp_events"
3030
indexes = [
3131
models.Index(fields=["-start_date"], name="event_start_date_desc_idx"),
32-
models.Index(fields=["type"], name="event_type_idx"),
3332
]
3433
verbose_name_plural = "Events"
3534

@@ -40,37 +39,23 @@ class Category(models.TextChoices):
4039
GLOBAL = "global", "Global"
4140
OTHER = "other", "Other"
4241
PARTNER = "partner", "Partner"
43-
44-
class Type(models.TextChoices):
45-
"""Event type."""
46-
47-
CALENDAR = "calendar", "Calendar"
48-
EXISTING = "existing", "Existing"
42+
COMMUNITY = "community", "Community"
4943

5044
class Status(models.TextChoices):
5145
"""Event status."""
5246

5347
CONFIRMED = "confirmed", "Confirmed"
54-
TENTATIVE = "tentative", "Tentative"
55-
CANCELLED = "cancelled", "Cancelled"
5648

5749
category = models.CharField(
5850
verbose_name="Category",
5951
max_length=11,
6052
choices=Category.choices,
6153
default=Category.OTHER,
6254
)
55+
# Google Calendar event entity ID
6356
calendar_id = models.CharField(
6457
verbose_name="Calendar ID", max_length=1024, blank=True, default=""
6558
)
66-
channel_id = models.CharField(verbose_name="Channel ID", max_length=15, default="")
67-
member = models.ForeignKey(
68-
"slack.Member",
69-
on_delete=models.CASCADE,
70-
related_name="calendar_events",
71-
verbose_name="Slack Member",
72-
null=True,
73-
)
7459
name = models.CharField(verbose_name="Name", max_length=100)
7560
start_date = models.DateField(verbose_name="Start Date")
7661
end_date = models.DateField(verbose_name="End Date", null=True, blank=True)
@@ -86,12 +71,6 @@ class Status(models.TextChoices):
8671
suggested_location = models.CharField(
8772
verbose_name="Suggested Location", max_length=255, blank=True, default=""
8873
)
89-
type = models.CharField(
90-
verbose_name="Type",
91-
max_length=11,
92-
choices=Type.choices,
93-
default=Type.EXISTING,
94-
)
9574
url = models.URLField(verbose_name="URL", default="", blank=True)
9675
latitude = models.FloatField(verbose_name="Latitude", null=True, blank=True)
9776
longitude = models.FloatField(verbose_name="Longitude", null=True, blank=True)
@@ -111,10 +90,10 @@ def upcoming_events():
11190
return (
11291
Event.objects.filter(
11392
start_date__gt=timezone.now(),
114-
type=Event.Type.EXISTING,
11593
)
11694
.exclude(
11795
Q(name__exact="") | Q(url__exact=""),
96+
category=Event.Category.COMMUNITY,
11897
)
11998
.order_by(
12099
"start_date",
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
"""Slack remainder model."""
2+
3+
from django.db import models
4+
5+
6+
class Remainder(models.Model):
7+
"""Model representing a slack channel remainder."""
8+
9+
class Meta:
10+
db_table = "slack_remainders"
11+
verbose_name = "Slack Remainder"
12+
verbose_name_plural = "Slack Remainders"
13+
14+
member = models.ForeignKey(
15+
"slack.Member",
16+
verbose_name="Slack Member",
17+
on_delete=models.SET_NULL,
18+
null=True,
19+
)
20+
channel = models.ForeignKey(
21+
"slack.EntityChannel",
22+
verbose_name="Slack Channel",
23+
on_delete=models.CASCADE,
24+
)
25+
message = models.TextField(verbose_name="Reminder Message")
26+
remind_at = models.DateTimeField(verbose_name="Reminder Time")
27+
periodic = models.BooleanField(default=False, verbose_name="Is Periodic")
28+
29+
def __str__(self) -> str:
30+
"""Remainder human readable representation."""
31+
return f"Reminder for {self.member} in {self.channel}: {self.message} at {self.remind_at}"

0 commit comments

Comments
 (0)