feat(models/pages.py): add CourseIndexPage
This commit is contained in:
@@ -25,6 +25,28 @@ class HomePage(Page):
|
|||||||
content_panels = Page.content_panels + ["body"]
|
content_panels = Page.content_panels + ["body"]
|
||||||
|
|
||||||
|
|
||||||
|
class CourseIndexPage(Page):
|
||||||
|
subpage_types = ["home.CoursePage"]
|
||||||
|
|
||||||
|
def get_context(self, request):
|
||||||
|
context = super().get_context(request)
|
||||||
|
all_courses = self.get_children().live()
|
||||||
|
purchased_courses = set()
|
||||||
|
other_courses = set()
|
||||||
|
|
||||||
|
for course in all_courses:
|
||||||
|
if course.specific._user_has_access(request.user):
|
||||||
|
purchased_courses.add(course)
|
||||||
|
else:
|
||||||
|
other_courses.add(course)
|
||||||
|
|
||||||
|
context["purchased_courses"] = sorted(
|
||||||
|
purchased_courses, key=lambda c: c.title.lower()
|
||||||
|
)
|
||||||
|
context["other_courses"] = sorted(other_courses, key=lambda c: c.title.lower())
|
||||||
|
return context
|
||||||
|
|
||||||
|
|
||||||
class CoursePage(Page):
|
class CoursePage(Page):
|
||||||
body = RichTextField(blank=True)
|
body = RichTextField(blank=True)
|
||||||
course_image = models.ForeignKey(
|
course_image = models.ForeignKey(
|
||||||
@@ -56,6 +78,7 @@ class CoursePage(Page):
|
|||||||
FieldPanel("body"),
|
FieldPanel("body"),
|
||||||
FieldPanel("allowed_groups", widget=CheckboxSelectMultiple),
|
FieldPanel("allowed_groups", widget=CheckboxSelectMultiple),
|
||||||
]
|
]
|
||||||
|
parent_page_types = ["home.CourseIndexPage"]
|
||||||
subpage_types = ["home.CourseModulePage"]
|
subpage_types = ["home.CourseModulePage"]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user