from django.conf import settings from django.conf.urls import include, url from django.conf.urls.static import static from django.contrib.auth.decorators import permission_required from django.contrib import admin as django_admin from django.views.generic import TemplateView, RedirectView from rest_framework import routers from .accounts.views import (ProfileEditView, ProfileView, TimtecUserAdminViewSet, AcceptTermsView, ) from .core.views import (CourseView, GenericCourseView, CourseProfessorViewSet, EnrollCourseView, HomeView, UserCoursesView, ContactView, LessonDetailView, LessonViewSet, SimpleLessonViewSet, StudentProgressViewSet, UserNotesViewSet, CoursesView, CourseThumbViewSet, LessonThumbViewSet, CourseStudentViewSet, CarouselCourseView, DashboardView, ClassListView, ClassCreateView, ClassUpdateView, ClassDeleteView, ClassRemoveUserView, ClassAddUsersView, ClassEvaluationsView, ClassActivityViewSet, FlatpageViewSet, CoursePictureUploadViewSet, ResumeCourseView, FlatpageView, CourseAuthorViewSet, UnitViewSet, EvaluationViewSet, RequestCertificateView, EmitReceiptView, ProfileViewSet, ) from .activities.views import AnswerViewSet, ActivityImageViewSet, SlidesRevealView from .course_material.views import CourseMaterialView, FileUploadView from .notes.views import NotesViewSet, CourseNotesView, UserNotesView from .reports.views import (UserCourseStats, CourseStatsByLessonViewSet, UserCourseLessonsStats, GeneralReportsView, ) from courses.views import ( CourseViewSet, BaseCourseProfessorViewSet, ProfessorMessageViewSet, ProfessorGlobalMessageViewSet, ProfessorMessageReadViewSet, CourseGroupViewSet ) from courses.course_material.views import CourseMaterialViewSet, CourseMaterialFileViewSet from courses.certification.views import ( CertificationProcessViewSet, CourseCertificationViewSet, CertificateTemplateViewSet, CertificateTemplateImageViewSet, CourseCertificationDetailView, ) from courses.workspaces.views import ( WorkspaceViewSet, WorkspaceGroupViewSet, WorkspaceGroupAdminViewSet, ) from courses.classes.views import BasicClassViewSet, ClassViewSet from courses.reports.views import ( SummaryViewSet, UsersByGroupViewSet, UsersByClassViewSet, ) from baquara.users.views import SearchUserViewSet, GroupViewSet, GroupAdminViewSet app_name = 'courses_legacy' django_admin.autodiscover() router = routers.DefaultRouter(trailing_slash=False) router.register(r'profile', ProfileViewSet, base_name='profile') router.register(r'user_admin', TimtecUserAdminViewSet, base_name='user_admin') router.register(r'course_group', CourseGroupViewSet, base_name='course_group') router.register(r'course_carousel', CarouselCourseView, base_name='course_carousel') router.register(r'course_professor', CourseProfessorViewSet, base_name='course_professor') router.register(r'course_professor_picture', CoursePictureUploadViewSet, base_name='course_professor_picture') router.register(r'course_author', CourseAuthorViewSet, base_name='course_author') router.register(r'course_student', CourseStudentViewSet, base_name='course_student') # Professor Message router.register(r'professor_message', ProfessorMessageViewSet, base_name='professor_message') router.register(r'professor_message_global', ProfessorGlobalMessageViewSet, base_name='professor_message_global') router.register(r'professor_message_read', ProfessorMessageReadViewSet, base_name='professor_message_read') router.register(r'coursethumbs', CourseThumbViewSet, base_name='coursethumbs') router.register(r'lessonthumbs', LessonThumbViewSet, base_name='lessonthumbs') router.register(r'lessons', LessonViewSet, base_name='lessons') router.register(r'simple_lessons', SimpleLessonViewSet, base_name='simple_lessons') router.register(r'unit', UnitViewSet, base_name='unit') router.register(r'answer', AnswerViewSet, base_name='answer') router.register(r'activity_image', ActivityImageViewSet, base_name='activity_image') router.register(r'student_progress', StudentProgressViewSet, base_name='student_progress') router.register(r'note', NotesViewSet, base_name='note') router.register(r'user_notes', UserNotesViewSet, base_name='user_notes') router.register(r'reports', UserCourseStats, base_name='reports') router.register(r'lessons_user_progress', UserCourseLessonsStats, base_name='lessons_user_progress') router.register(r'course_stats', CourseStatsByLessonViewSet, base_name='course_stats') router.register(r'course_classes', ClassViewSet, base_name='course_classes') router.register(r'course_classes_basic', BasicClassViewSet, base_name='course_classes_basic') router.register(r'course_class_activities', ClassActivityViewSet, base_name='course_class_activities') router.register(r'flatpage', FlatpageViewSet, base_name='flatpage') router.register(r'evaluation', EvaluationViewSet, base_name='evaluation') # Views migradas, mantidas por compatibilidade com angularjs router.register(r'course', CourseViewSet, base_name='course') router.register(r'course_material', CourseMaterialViewSet, base_name='course_material') router.register(r'course_material_file', CourseMaterialFileViewSet, base_name='course_material_file') router.register(r'course_professor_basic', BaseCourseProfessorViewSet, base_name='course_professor') router.register(r'user', SearchUserViewSet, base_name='user') router.register(r'user_search', SearchUserViewSet, base_name='user_search') router.register(r'student_search', SearchUserViewSet, base_name='student_search') router.register(r'group', GroupViewSet, base_name='group') router.register(r'group_admin', GroupAdminViewSet, base_name='group_admin') router.register(r'course_certification', CourseCertificationViewSet, base_name='course_certification') router.register(r'certification_process', CertificationProcessViewSet, base_name='certification_process') router.register(r'certificate_template', CertificateTemplateViewSet, base_name='certificate_template') # Workspaces (Contracts) compat router.register(r'contract', WorkspaceViewSet) router.register(r'group', WorkspaceGroupViewSet, base_name='group') router.register(r'group_admin', WorkspaceGroupAdminViewSet, base_name='group_admin') router.register(r'class', ClassViewSet) # General Reports router.register(r'summary', SummaryViewSet, base_name='summary') router.register(r'users-by-group', UsersByGroupViewSet, base_name='users-by-group') router.register(r'users-by-class', UsersByClassViewSet, base_name='users-by-class') urlpatterns = [ url(r'^$', HomeView.as_view(), name='home_view'), url(r'^courses', CoursesView.as_view(), name='courses'), # Privileged browsing url(r'^admin/', include('courses_legacy.administration.urls')), url(r'^reports/', include('courses_legacy.reports.urls')), # Public browsing url(r'^my-courses/$', UserCoursesView.as_view(), name='user_courses'), url(r'^emit_recipt/(?P<course_id>[-a-zA-Z0-9_]+)$', EmitReceiptView.as_view(), name='emit_recipt'), url(r'^request_certificate/(?P<course_id>[-a-zA-Z0-9_]+)$', RequestCertificateView.as_view(), name='request_certificate'), # Certificate url(r'^certificate/(?P<slug>[-a-zA-Z0-9_]+)/$', CourseCertificationDetailView.as_view(), name='certificate'), url(r'^certificate/(?P<slug>[-a-zA-Z0-9_]+)/print/$', CourseCertificationDetailView.as_view(template_name="certificate_print.html"), name='certificate-print', ), url(r'^certificates-list.html$', TemplateView.as_view(template_name="administration/certificates-list.html")), url(r'^admin/contracts$', TemplateView.as_view(template_name="contracts.html"), name="contracts"), url(r'^contract-edit.html$', TemplateView.as_view(template_name="contract-edit.html")), url(r'^contract-detail.html$', TemplateView.as_view(template_name="contract-detail.html")), url(r'^contracts-list.html$', TemplateView.as_view(template_name="contracts-list.html")), url(r'^accept_terms/$', AcceptTermsView.as_view(), name='accept_terms'), url(r'^course/(?P<slug>[-a-zA-Z0-9_]+)/intro/$', CourseView.as_view(), name='course_intro'), url(r'^course/(?P<slug>[-a-zA-Z0-9_]+)/enroll/$', EnrollCourseView.as_view(), name='enroll_course'), url(r'^course/(?P<slug>[-a-zA-Z0-9_]+)/resume/$', ResumeCourseView.as_view(), name='resume_course'), url(r'^course/(?P<course_slug>[-a-zA-Z0-9_]+)/lesson/(?P<slug>[-a-zA-Z0-9_]+)/$', LessonDetailView.as_view(), name='lesson'), url(r'^html5/', TemplateView.as_view(template_name="html5.html")), url(r'^empty/', TemplateView.as_view(template_name="empty.html")), # Classes url(r'^course/(?P<course_slug>[-a-zA-Z0-9_]+)/classes/$', ClassListView.as_view(), name='classes'), url(r'^class/create/$', ClassCreateView.as_view(), name='class-create'), url(r'^class/(?P<pk>[0-9]+)/$', ClassUpdateView.as_view(), name='class'), url(r'^class/(?P<pk>[0-9]+)/delete/$', ClassDeleteView.as_view(), name='class-delete'), url(r'^class/(?P<pk>[0-9]+)/remove_user/$', ClassRemoveUserView.as_view(), name='class-remove-user'), url(r'^class/(?P<pk>[0-9]+)/add_users/$', ClassAddUsersView.as_view(), name='class-add-users'), url(r'^class/(?P<pk>[0-9]+)/evaluations/$', ClassEvaluationsView.as_view(), name='class-evaluations'), # Evaluations url(r'^course/(?P<course_slug>[-a-zA-Z0-9_]+)/course_evaluations/$', GenericCourseView.as_view(template_name="course-evaluations.html"), name='course-evaluations'), # Services url(r'^api/', include(router.urls)), # Course Material url(r'^course/(?P<slug>[-a-zA-Z0-9_]+)/material/file_upload/$', FileUploadView.as_view(), name='file_upload'), url(r'^course/(?P<slug>[-a-zA-Z0-9_]+)/material/$', CourseMaterialView.as_view(), name='course_material'), # Slides.com embeds url(r'^activity/slides_reveal/(?P<pk>[0-9]+)$', SlidesRevealView.as_view()), # Notes url(r'^notes/(?P<username>[\w.+-]+)?$', UserNotesView.as_view(), name='user_notes'), url(r'^course/(?P<course_slug>[-a-zA-Z0-9_]+)/mynotes/$', CourseNotesView.as_view(), name='user_course_notes'), # Messages url(r'^course/(?P<course_slug>[-a-zA-Z0-9_]+)/messages/$', GenericCourseView.as_view(template_name="messages.html"), name='messages'), url(r'^course/(?P<course_slug>[-a-zA-Z0-9_]+)/message/(?P<message_id>[1-9][0-9]*)$', GenericCourseView.as_view(template_name="message.html"), name='message_detail'), url(r'^messages/$', TemplateView.as_view(template_name="messages-list.html"), name='message_detail'), url(r'^message/(?P<message_id>[1-9][0-9]*)$', TemplateView.as_view(template_name="messages-global-detail.html"), name='messages_global_detail'), # Messages Angular components url(r'^message-list.template.html', TemplateView.as_view(template_name="components/message-list.template.html")), url(r'^message-detail.template.html', TemplateView.as_view(template_name="components/message-detail.template.html")), url(r'^message-create.template.html', TemplateView.as_view(template_name="components/message-create.template.html")), # Classroom Angular components url(r'^classroom-list.template.html', TemplateView.as_view(template_name="components/classroom-list.template.html")), # Reports Angular components url(r'^city-participation-report.template.html', TemplateView.as_view(template_name="components/city-participation-report.template.html"), name='city-participation-report'), url(r'^city-participation-report-list.template.html', TemplateView.as_view(template_name="components/city-participation-report-list.template.html"), name='city-participation-report-list'), url(r'^classroom-participation-report.template.html', TemplateView.as_view(template_name="components/classroom-participation-report.template.html"), name='classroom-participation-report'), url(r'^general-user-report-list.template.html', TemplateView.as_view(template_name="components/general-user-report-list.template.html"), name='general-user-report-list'), url(r'^role-participation-report.template.html', TemplateView.as_view(template_name="components/role-participation-report.template.html"), name='role-participation-report'), url(r'^user-participation-graphics-report.template.html', TemplateView.as_view(template_name="components/user-participation-graphics-report.template.html"), name='user-participation-graphics-report'), url(r'^user-participation-report.template.html', TemplateView.as_view(template_name="components/user-participation-report.template.html"), name='user-participation-report'), # Reports url(r'^course/(?P<course_slug>[-a-zA-Z0-9_]+)/reports/$', GenericCourseView.as_view(template_name="administration/stats.html"), name='reports'), url(r'^general-reports/$', permission_required('is_staff')(GeneralReportsView.as_view()), name='general_reports'), url(r'^pages(?P<url>.*)$', FlatpageView.as_view(), name='flatpage'), # The django-rosetta # url(r'^rosetta/', include('rosetta.urls')), url(r'^djangular.js', TemplateView.as_view(template_name='djangular.js', content_type='text/javascript'), name='djangular', ), url(r'^user-report-list.template.html', TemplateView.as_view(template_name="user-report-list.html")), url(r'^user-report.template.html', TemplateView.as_view(template_name="user-report.html")), url(r'^user-course-report-list.template.html', TemplateView.as_view(template_name="user-course-report-list.html")), url(r'^user-course-report.template.html', TemplateView.as_view(template_name="user-course-report.html")), url(r'^user-actions-report-list.template.html', TemplateView.as_view(template_name="user-actions-report-list.html")), url(r'^user-access-report.template.html', TemplateView.as_view(template_name="user-access-report.html")), ] if 'discussion' in settings.INSTALLED_APPS: urlpatterns += [url(r'^discussion/', include('discussion.urls', namespace='discussion')),] if 'cards' in settings.INSTALLED_APPS: urlpatterns += [ url(r'^cards/', include('cards.urls', namespace='cards')), ] if 'courses_notifications.apps.CoursesNotificationsConfig' in settings.INSTALLED_APPS: urlpatterns += [ url(r'^api/', include('courses_notifications.urls', namespace='courses_notifications')), ] if settings.TIMTEC_THEMES_COMPAT: from django.views.decorators.csrf import csrf_exempt urlpatterns += [ url(r'^$', HomeView.as_view(), name='home_view'), url(r'^dashboard/', DashboardView.as_view(), name='dashboard'), url(r'^profile/edit/?$', ProfileEditView.as_view(), name="profile_edit"), url(r'^profile/(?P<username>[\w.+-]+)?/?$', ProfileView.as_view(), name="profile"), url(r'^contact/?$', csrf_exempt(ContactView.as_view()), name="contact"), # The django-allauth url(r'^accounts/', include('allauth.urls')), ]