Skip to content

Commit

Permalink
Add meeting publishing and capacity confirmation
Browse files Browse the repository at this point in the history
  • Loading branch information
raymondberg committed Apr 16, 2024
1 parent 54abcc8 commit 0d5102b
Show file tree
Hide file tree
Showing 6 changed files with 108 additions and 5 deletions.
4 changes: 3 additions & 1 deletion chipy_org/apps/main/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ class Home(TemplateView, InitialRSVPMixin):

def get_meeting(self):
return (
Meeting.objects.filter(when__gt=datetime.datetime.now() - datetime.timedelta(hours=6))
Meeting.objects.filter(
status="published", when__gt=datetime.datetime.now() - datetime.timedelta(hours=6)
)
.order_by("when")
.first()
)
Expand Down
40 changes: 40 additions & 0 deletions chipy_org/apps/meetings/healthchecks.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,26 @@ def health_check(fn):
_health_checks.append(fn)


@health_check
def _status(meeting):
level = None
if meeting.status == "published":
level = "success"
message = "Meeting published"
else:
message = "Meeting not published"

if not level:
if meeting.when < datetime.datetime.now() + datetime.timedelta(days=60):
level = "danger"
elif meeting.when < datetime.datetime.now() + datetime.timedelta(days=90):
level = "warning"
else:
level = "secondary"

return HealthCheckResult(level, "Publish", message)


@health_check
def _location_check(meeting):
level = "secondary"
Expand All @@ -34,6 +54,9 @@ def _location_check(meeting):
level = "danger"
elif meeting.when < datetime.datetime.now() + datetime.timedelta(days=90):
level = "warning"
else:
level = "secondary"

return HealthCheckResult(level, "Location", "No location for meeting")


Expand All @@ -54,6 +77,23 @@ def _meetup_check(meeting):
return HealthCheckResult(level, "Meetup", "No meetup_id")


@health_check
def _attendance_confirmed(meeting):
if meeting.capacity_verified:
return HealthCheckResult("success", "Capacity", "Verified")

if meeting.when < datetime.datetime.now() + datetime.timedelta(days=60):
level = "danger"
elif meeting.when < datetime.datetime.now() + datetime.timedelta(days=90):
level = "warning"
else:
level = "secondary"

return HealthCheckResult(
level, "Capacity", f"Not verified ({meeting.in_person_capacity} in person)"
)


@health_check
def _topic_check(meeting):
from .models import Topic
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Generated by Django 4.2.11 on 2024-04-15 20:16

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("meetings", "0006_remove_topic_approved"),
]

operations = [
migrations.AddField(
model_name="meeting",
name="capacity_verified",
field=models.BooleanField(default=False),
),
migrations.AddField(
model_name="meeting",
name="status",
field=models.CharField(
choices=[("draft", "draft"), ("published", "published")],
default="submitted",
max_length=50,
),
),
]
22 changes: 22 additions & 0 deletions chipy_org/apps/meetings/migrations/0008_alter_meeting_status.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Generated by Django 4.2.11 on 2024-04-15 20:36

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("meetings", "0007_meeting_capacity_verified_meeting_status"),
]

operations = [
migrations.AlterField(
model_name="meeting",
name="status",
field=models.CharField(
choices=[("draft", "draft"), ("published", "published"), ("archived", "archived")],
default="submitted",
max_length=50,
),
),
]
12 changes: 12 additions & 0 deletions chipy_org/apps/meetings/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,12 +91,23 @@ class Meta:


class Meeting(CommonModel):
class Status:
DRAFT = "draft"
PUBLISHED = "published"
ARCHIVED = "archived"
ALL = (
(DRAFT, DRAFT),
(PUBLISHED, PUBLISHED),
(ARCHIVED, ARCHIVED),
)

def __str__(self):
if self.where:
return f"{self.when:%a, %b %d %Y at %I:%M %p} at {self.where.name}"

return f"{self.when} location TBD"

status = models.CharField(max_length=50, choices=Status.ALL, default="submitted")
when = models.DateTimeField()
reg_close_date = models.DateTimeField("Registration Close Date", blank=True, null=True)
where = models.ForeignKey(Venue, blank=True, null=True, on_delete=models.CASCADE)
Expand Down Expand Up @@ -135,6 +146,7 @@ def __str__(self):
virtual_capacity = models.PositiveSmallIntegerField(
blank=True, null=True, help_text="Leave blank for no maximum"
)
capacity_verified = models.BooleanField(default=False)

def can_register(self):
can_reg = True
Expand Down
8 changes: 4 additions & 4 deletions chipy_org/apps/meetings/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ def add_extra_context(self, context):
class FutureMeetings(ListView):
template_name = "meetings/future_meetings.html"
queryset = Meeting.objects.filter(
when__gt=datetime.datetime.now() - datetime.timedelta(hours=3)
status="published", when__gt=datetime.datetime.now() - datetime.timedelta(hours=3)
).order_by("when")
paginate_by = 5

Expand All @@ -100,7 +100,7 @@ def handle_no_permission(self):
class PastMeetings(ListView):
template_name = "meetings/past_meetings.html"
queryset = Meeting.objects.filter(
when__lt=datetime.datetime.now() - datetime.timedelta(hours=3)
status="published", when__lt=datetime.datetime.now() - datetime.timedelta(hours=3)
).order_by("-when")
paginate_by = 5

Expand Down Expand Up @@ -340,11 +340,11 @@ def get_context_data(self, **kwargs):
data = super().get_context_data(**kwargs)

upcoming_events = Meeting.objects.filter(
when__gt=datetime.datetime.now() - datetime.timedelta(hours=3)
status="published", when__gt=datetime.datetime.now() - datetime.timedelta(hours=3)
).order_by("when")[:5]

all_past_events = Meeting.objects.filter(
when__lt=datetime.datetime.now() - datetime.timedelta(hours=3)
status="published", when__lt=datetime.datetime.now() - datetime.timedelta(hours=3)
).order_by("-when")

if upcoming_events.count() > 1:
Expand Down

0 comments on commit 0d5102b

Please sign in to comment.