diff --git a/apps/course/templates/course/course_edit.html b/apps/course/templates/course/course_edit.html index 5858e4c3..ddc6a285 100644 --- a/apps/course/templates/course/course_edit.html +++ b/apps/course/templates/course/course_edit.html @@ -1,8 +1,14 @@ {% extends "templates/lilcity/edit_index.html" %} {% load static %} -{% block title %}{% if course %}Редактирование курса {{ course.title }}{% else %}Создание курса{% endif %}{% endblock title%} +{% block title %} + {% if course %} + Редактирование {% if not live %}курса{% else %}стрима{% endif %} {{ course.title }} + {% else %} + Создание {% if not live %}курса{% else %}стрима{% endif %} + {% endif %} +{% endblock title%} {% block content %} - diff --git a/apps/course/views.py b/apps/course/views.py index 42235e27..a7fb0abe 100644 --- a/apps/course/views.py +++ b/apps/course/views.py @@ -171,11 +171,37 @@ class CourseEditView(TemplateView): def get_context_data(self): context = super().get_context_data() + context['live'] = 'false' if self.object: context['course'] = self.object return context +@method_decorator(login_required, name='dispatch') +class CourseLiveEditView(TemplateView): + template_name = 'course/course_edit.html' + + def get(self, request, pk=None): + drafts = Course.objects.filter( + author=request.user, status=Course.DRAFT + ) + if pk: + self.object = get_object_or_404(Course, pk=pk) + elif drafts.exists(): + self.object = drafts.last() + else: + self.object = Course.objects.create() + if request.user != self.object.author and request.user.role not in [User.ADMIN_ROLE, User.AUTHOR_ROLE]: + raise Http404 + return super().get(request) + + def get_context_data(self): + context = super().get_context_data() + context['live'] = 'true' + if self.object: + context['course'] = self.object + return context + # @method_decorator(login_required, name='dispatch') class CourseView(DetailView): model = Course diff --git a/project/urls.py b/project/urls.py index bdcfc266..f1d97216 100644 --- a/project/urls.py +++ b/project/urls.py @@ -23,7 +23,7 @@ from apps.course.views import ( CoursesView, likes, coursecomment, CourseView, LessonView, SearchView, lessoncomment, CourseEditView, - CourseOnModerationView, + CourseOnModerationView, CourseLiveEditView, ) from apps.user.views import ( AuthorRequestView, UserView, @@ -46,6 +46,7 @@ urlpatterns = [ path('author-request/success/', TemplateView.as_view(template_name='user/become-author-success.html'), name='author-request-success'), path('courses/', CoursesView.as_view(), name='courses'), path('course/create', CourseEditView.as_view(), name='course_create'), + path('course/create/live', CourseLiveEditView.as_view(), name='course_create_live'), path('course/on-moderation', CourseOnModerationView.as_view(), name='course-on-moderation'), path('course//', CourseView.as_view(), name='course'), path('course//', CourseView.as_view(), name='course'),