diff --git a/src/camps/models.py b/src/camps/models.py
index b0028495..3e15d424 100644
--- a/src/camps/models.py
+++ b/src/camps/models.py
@@ -104,6 +104,10 @@ class Camp(CreatedUpdatedModel, UUIDModel):
default="The Call For Sponsors for this Camp has not been written yet",
)
+ show_schedule = models.BooleanField(
+ help_text="Check if the schedule should be shown.", default=True
+ )
+
def get_absolute_url(self):
return reverse("camp_detail", kwargs={"camp_slug": self.slug})
diff --git a/src/program/templates/includes/program_menu.html b/src/program/templates/includes/program_menu.html
index d5439a8b..f637415c 100644
--- a/src/program/templates/includes/program_menu.html
+++ b/src/program/templates/includes/program_menu.html
@@ -1,4 +1,6 @@
+{% if camp.show_schedule %}
Schedule
+{% endif %}
Events
Speakers
Call for Participation
diff --git a/src/program/views.py b/src/program/views.py
index ef11ef9a..e0bdacc8 100644
--- a/src/program/views.py
+++ b/src/program/views.py
@@ -801,12 +801,16 @@ class ScheduleView(CampViewMixin, TemplateView):
If no events are scheduled redirect to the event page
"""
response = super().dispatch(request, *args, **kwargs)
- if not models.EventInstance.objects.filter(
+
+ events_exist = models.EventInstance.objects.filter(
event__track__camp=self.camp
- ).exists():
+ ).exists()
+
+ if not self.camp.show_schedule or not events_exist:
return redirect(
reverse("program:event_index", kwargs={"camp_slug": self.camp.slug})
)
+
return response
def get_context_data(self, *args, **kwargs):