diff options
-rw-r--r-- | yaksh/forms.py | 7 | ||||
-rw-r--r-- | yaksh/templates/yaksh/course_modules.html | 16 | ||||
-rw-r--r-- | yaksh/templates/yaksh/quizzes_user.html | 89 | ||||
-rw-r--r-- | yaksh/views.py | 16 |
4 files changed, 76 insertions, 52 deletions
diff --git a/yaksh/forms.py b/yaksh/forms.py index a51e6c2..57140bc 100644 --- a/yaksh/forms.py +++ b/yaksh/forms.py @@ -282,8 +282,11 @@ class CourseForm(forms.ModelForm): class Meta: model = Course - fields = ['name', 'enrollment', 'active', 'code', 'instructions', - 'start_enroll_time', 'end_enroll_time', 'grading_system'] + fields = [ + 'name', 'enrollment', 'active', 'code', 'instructions', + 'start_enroll_time', 'end_enroll_time', 'grading_system', + 'view_grade' + ] class ProfileForm(forms.ModelForm): diff --git a/yaksh/templates/yaksh/course_modules.html b/yaksh/templates/yaksh/course_modules.html index 244c2d9..d5bbfd3 100644 --- a/yaksh/templates/yaksh/course_modules.html +++ b/yaksh/templates/yaksh/course_modules.html @@ -16,20 +16,8 @@ <div class="container"> <div class="row justify-content-md-center yakshwell "> <div class="col-md-10 bg-light card"> - <div class="row align-items-center"> - <div class="col h4"> {{ course.name }} </div> - <div class="col-md-3 ml-auto yakshwell"> - <div class="row align-items-center"> - <div class="col-sm-6"> Overall - Course</br>Completion : - </div> - <div class="col-sm-5"> - <span class="progress"> - <span class="progress-bar bg-warning " role="progressbar" style="width: {{ course_percentage }}%; color: black;" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100">{{ course_percentage }} % completed</span> - </span> - </div> - </div> - </div> + <div class="row align-items-center my-3"> + <div class="col h4 text-center"> {{ course.name }} </div> </div> </div> </div> diff --git a/yaksh/templates/yaksh/quizzes_user.html b/yaksh/templates/yaksh/quizzes_user.html index 548eef4..ee5b684 100644 --- a/yaksh/templates/yaksh/quizzes_user.html +++ b/yaksh/templates/yaksh/quizzes_user.html @@ -72,21 +72,21 @@ <div class="yakshwell"> <div class="row yakshlabel align-items-center"> <div class="col"> - <h4><b> - - {{ course.name }} by {{ course.creator.get_full_name }} - - </b></h4> - {% if course.is_active_enrollment %} + <a data-toggle="collapse" href="#collapsedetails{{course.data.id}}" role="button" aria-expanded="false" aria-controls="#collapsedetails{{course.data.id}}"> + <h4><b> + {{ course.data.name }} by {{ course.data.creator.get_full_name }} + </b></h4> + </a> + {% if course.data.is_active_enrollment %} <div class="text-left"> - <span class="yakshgreen">{{course.start_enroll_time}}</span> to <span class="yakshgreen">{{course.end_enroll_time}}</span> + <span class="yakshgreen">{{course.data.start_enroll_time}}</span> to <span class="yakshgreen">{{course.data.end_enroll_time}}</span> </div> {% endif %} </div> <div class="col-sm-auto"> - {% if course.days_before_start != 0 %} + {% if course.data.days_before_start != 0 %} <span class="label label-info" style="font-size: 15px"> - {{course.days_before_start}} day(s) to start + {{course.data.days_before_start}} day(s) to start </span> {% endif %} @@ -94,20 +94,27 @@ <div class="container col-sm-4 offset-sm-2"> <span class="row align-items-center"> <span class="col-sm-4" > - <a class="btn btn-primary" data-toggle="collapse" href="#collapsedetails{{course.id}}" role="button" aria-expanded="false" aria-controls="#collapsedetails{{course.id}}">DETAILS</a> + <a class="btn btn-primary" data-toggle="collapse" href="#collapsedetails{{course.data.id}}" role="button" aria-expanded="false" aria-controls="#collapsedetails{{course.data.id}}">DETAILS</a> </span> <span class="col-sm-auto"> - {% if user in course.requests.all %} <span class="badge badge-warning">Request Pending </span> - {% elif user in course.rejected.all %}<span class="badge badge-danger">Request Rejected</span> - {% elif user in course.students.all %}<a class="btn btn-success" href="{{URL_ROOT}}/exam/course_modules/{{course.id}}" >START</a> + {% if user in course.data.requests.all %} <span class="badge badge-warning">Request Pending </span> + {% elif user in course.data.rejected.all %}<span class="badge badge-danger">Request Rejected</span> + {% elif user in course.data.students.all %} + <a class="btn btn-success" href="{{URL_ROOT}}/exam/course_modules/{{course.data.id}}" > + {% if course.completion_percentage > 0 %} + CONTINUE + {% else %} + START + {% endif %} + </a> {% else %} - {% if course.active %} - {% if course.is_active_enrollment %} - {% if course.is_self_enroll %} - <a class="btn btn-success" href="{{ URL_ROOT }}/exam/self_enroll/{{ course.id }}">ENROLL</a> + {% if course.data.active %} + {% if course.data.is_active_enrollment %} + {% if course.data.is_self_enroll %} + <a class="btn btn-success" href="{{ URL_ROOT }}/exam/self_enroll/{{ course.data.id }}">ENROLL</a> {% else %} - <a class="btn btn-success" href="{{ URL_ROOT }}/exam/enroll_request/{{ course.id }}">ENROLL</a> + <a class="btn btn-success" href="{{ URL_ROOT }}/exam/enroll_request/{{ course.data.id }}">ENROLL</a> {% endif %} {% else %} <span class="btn btn-danger disabled" style="font-size: 15px"> @@ -124,39 +131,55 @@ </span> </div> <!-- About course--> - <div class="collapse container-fluid" id="collapsedetails{{course.id}}"> + <div class="collapse container-fluid" id="collapsedetails{{course.data.id}}"> <div class="card card-body "> - <h4>{{ course.name }} by {{ course.creator.get_full_name }}</h4><hr> + <h4>{{ course.data.name }} by {{ course.data.creator.get_full_name }}</h4><hr> <div class="row"> <div class="col-md-7"> - {% if course.description %} + {% if course.data.description %} <p> <span class="yakshred yakshheading">About the course</span><br> - {{ course.description }} + {{ course.data.description }} </p> {% endif %} - {% if course.get_learning_modules %} + {% if course.data.get_learning_modules %} <p> <span class="yakshred yakshheading">What you'll learn</span> <ul> - {% for module in course.get_learning_modules %} + {% for module in course.data.get_learning_modules %} <li>{{module.name|title}}</li> {% endfor %} </ul> </p> {% endif %} <p> <span class="yakshred yakshheading">Instructor</span><br> - {{ course.creator.get_full_name }} + {{ course.data.creator.get_full_name }} </p> - {% if course.instructions %} - <p> <span class="yakshred yakshheading">Requirement(s)</span><br> - {{ course.instructions|safe }} + {% if course.data.instructions %} + <p> <span class="yakshred yakshheading">Instructions</span><br> + {{ course.data.instructions|safe }} </p> {% endif %} </div> - <div class="col-md-4 "> - <table class="table table-borderless card table-responsive-sm"> - <tr><td class="yakshgreen">STARTS ON</td> <td>{{course.start_enroll_time}}</td></tr> - <tr><td class="yakshgreen">ENDS ON</td> <td>{{course.end_enroll_time}}</td> - </table> + <div class="col-md-4"> + <div class="row my-3"> + <div class="col-md-5"> + STARTS ON + </div> + <div class="col-md-7"> + {{course.data.start_enroll_time}} + </div> + </div> + <div class="row my-3"> + <div class="col-md-5"> + ENDS ON + </div> + <div class="col-md-7"> + {{course.data.end_enroll_time}} + </div> + </div> + <div class="row my-3"> + <div class="progress-bar bg-success" role="progressbar" style="width:{{course.completion_percentage}}%"; color: black;" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100">{{course.completion_percentage}} % completed + </div> + </div> </div> </div> </div> diff --git a/yaksh/views.py b/yaksh/views.py index 6c7a12e..4c1b7f7 100644 --- a/yaksh/views.py +++ b/yaksh/views.py @@ -156,6 +156,7 @@ def user_logout(request): def quizlist_user(request, enrolled=None, msg=None): """Show All Quizzes that is available to logged-in user.""" user = request.user + courses_data = [] if request.method == "POST": course_code = request.POST.get('course_code') @@ -164,18 +165,27 @@ def quizlist_user(request, enrolled=None, msg=None): title = 'Search' elif enrolled is not None: - courses = user.students.all() + courses = user.students.all().order_by('-id') title = 'Enrolled Courses' else: courses = Course.objects.filter( active=True, is_trial=False ).exclude( ~Q(requests=user), ~Q(rejected=user), hidden=True - ) + ).order_by('-id') title = 'All Courses' + for c in courses: + _percent = c.get_completion_percent(user) if user in c.students.all() else None + courses_data.append( + { + 'data': c, + 'completion_percentage': _percent, + } + ) + context = { - 'user': user, 'courses': courses, + 'user': user, 'courses': courses_data, 'title': title, 'msg': msg } |