diff options
author | Palaparthy Adityachandra | 2020-02-28 13:43:48 +0530 |
---|---|---|
committer | GitHub | 2020-02-28 13:43:48 +0530 |
commit | ce0cdc307312d4da803abb3377cf7562b3fbcb4b (patch) | |
tree | b1303ee3214c0e1ff0581d9ce96495c7efde6cd7 /grades | |
parent | 32f1d4dc7816bbb93f6dda77591eeb75c3f30c0d (diff) | |
parent | b4751e0c1783a71c6672554114ccdf5a78c6b47f (diff) | |
download | online_test-ce0cdc307312d4da803abb3377cf7562b3fbcb4b.tar.gz online_test-ce0cdc307312d4da803abb3377cf7562b3fbcb4b.tar.bz2 online_test-ce0cdc307312d4da803abb3377cf7562b3fbcb4b.zip |
Merge pull request #652 from adityacp/revamp_ui
Revamp UI in moderator and student dashboard
Diffstat (limited to 'grades')
-rw-r--r-- | grades/forms.py | 34 | ||||
-rw-r--r-- | grades/models.py | 3 | ||||
-rw-r--r-- | grades/templates/add_grades.html | 97 | ||||
-rw-r--r-- | grades/templates/grading_systems.html | 41 | ||||
-rw-r--r-- | grades/views.py | 6 |
5 files changed, 156 insertions, 25 deletions
diff --git a/grades/forms.py b/grades/forms.py index 130659d..745abff 100644 --- a/grades/forms.py +++ b/grades/forms.py @@ -1,8 +1,40 @@ -from grades.models import GradingSystem +from grades.models import GradingSystem, GradeRange from django import forms class GradingSystemForm(forms.ModelForm): + + def __init__(self, *args, **kwargs): + super(GradingSystemForm, self).__init__(*args, **kwargs) + self.fields['name'].widget.attrs.update( + {'class': "form-control", 'placeholder': 'Grading Name'} + ) + self.fields['description'].widget.attrs.update( + {'class': "form-control", + 'placeholder': 'Grading description'} + ) class Meta: model = GradingSystem fields = ['name', 'description'] + + +class GradeRangeForm(forms.ModelForm): + def __init__(self, *args, **kwargs): + super(GradeRangeForm, self).__init__(*args, **kwargs) + self.fields['lower_limit'].widget.attrs.update( + {'class': "form-control", 'placeholder': 'Lower limit'} + ) + self.fields['upper_limit'].widget.attrs.update( + {'class': "form-control", 'placeholder': 'Upper limit'} + ) + self.fields['grade'].widget.attrs.update( + {'class': "form-control", 'placeholder': 'Grade'} + ) + self.fields['description'].widget.attrs.update( + {'class': "form-control", + 'placeholder': 'Description'} + ) + + class Meta: + model = GradeRange + fields = "__all__" diff --git a/grades/models.py b/grades/models.py index fcea510..b395a24 100644 --- a/grades/models.py +++ b/grades/models.py @@ -44,3 +44,6 @@ class GradeRange(models.Model): upper_limit = models.FloatField() grade = models.CharField(max_length=10) description = models.CharField(max_length=127, null=True, blank=True) + + def __str__(self): + return self.system.name.title() diff --git a/grades/templates/add_grades.html b/grades/templates/add_grades.html index a3f52da..59a344d 100644 --- a/grades/templates/add_grades.html +++ b/grades/templates/add_grades.html @@ -1,9 +1,50 @@ {% extends "manage.html" %} +{% load custom_filters %} +{% block title %} Add/Edit Grading {% endblock %} +{% block pagetitle %} Add/Edit Grading {% endblock %} {% block main %} <html> -<a href="{% url 'grades:grading_systems'%}" class="btn btn-danger"> Back to Grading Systems </a> +<div class="row"> + <div class="col-md-8"> + <ul class="nav nav-pills" id="course_tabs"> + <li class="nav-item"> + <a class="nav-link" href="{% url 'yaksh:courses' %}"> + My Courses + </a> + </li> + <li class="nav-item"> + <a class="nav-link" href="{% url 'yaksh:add_course' %}"> + Add New Course + </a> + </li> + <li class="nav-item dropdown hide"> + <a class="nav-link dropdown-toggle active" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="true">More</a> + <div class="dropdown-menu hide" x-placement="bottom-start" style="position: absolute; transform: translate3d(0px, 37px, 0px); top: 0px; left: 0px; will-change: transform;"> + <a class="dropdown-item" href="{% url 'yaksh:show_all_quizzes' %}"> + View Quizzes + </a> + <a class="dropdown-item" href="{% url 'yaksh:show_all_lessons' %}"> + View Lessons + </a> + <a class="dropdown-item" href="{% url 'yaksh:show_all_modules' %}"> + View Modules + </a> + <a href="{% url 'grades:grading_systems'%}" class="dropdown-item active" > + View Grading Systems + </a> + </div> + </li> + </ul> + </div> +</div> +<hr> +<a href="{% url 'grades:grading_systems'%}" class="btn btn-primary btn-lg"> + View Grading Systems +</a> <br><br> -<p><b>Note: For grade range lower limit is inclusive and upper limit is exclusive</b></p> +<div class="alert alert-info"> + Note: For grade range lower limit is inclusive and upper limit is exclusive +</div> <br> {% if not system_id %} <form action="{% url 'grades:add_grade' %}" method="POST"> @@ -12,24 +53,42 @@ {% endif %} {% csrf_token %} <table class="table"> - {{ grade_form }} + {% for field in grade_form %} + {{ field }} + <hr> + {% endfor %} + {{ formset.management_form }} + <br> + <div class="col"> + {% for form in formset %} + {% for hidden in form.hidden_fields %} + {{ hidden }} + {% endfor %} + <b><u>Grade Range {{forloop.counter}}.</u></b> + <div class="container"> + <div class="row"> + {% for field in form.visible_fields %} + <div class="col-sm-3"> + {% if field.field.widget|is_checkbox %} + {{ field.label_tag }} + {% endif %} + {{ field }} + </div> + {% endfor %} + </div> + </div> + {% endfor %} + </div> </table> - {{ formset.management_form }} - <br> - <b><u>Grade Ranges</u></b> - <hr> - {% for form in formset %} - <div> - {{ form }} - </div> - <hr> - {% endfor %} - {% if not is_default %} - <input type="submit" id="add" name="add" value="Add" class="btn btn-info"> - <input type="submit" id="save" name="save" value="Save" class="btn btn-success"> - {% else %} - <p><b>Note: This is a default grading system. You cannot change this.</b></p> - {% endif %} + {% if not is_default %} + <input type="submit" id="add" name="add" value="Add/Delete Grade Range" class="btn btn-info btn-lg"> + <input type="submit" id="save" name="save" value="Save" class="btn btn-success btn-lg"> + {% else %} + <div class="alert alert-warning"> + Note: This is a default grading system. You cannot change this. + </div> + {% endif %} + <br><br> </form> </html> {% endblock %} diff --git a/grades/templates/grading_systems.html b/grades/templates/grading_systems.html index 3a71ebf..8102230 100644 --- a/grades/templates/grading_systems.html +++ b/grades/templates/grading_systems.html @@ -1,8 +1,45 @@ {% extends "manage.html" %} +{% block title %} View Grading Systems {% endblock %} +{% block pagetitle %} View Grading Systems {% endblock %} {% block main %} <html> - <a href="{% url 'grades:add_grade' %}" class="btn btn-primary"> Add a Grading System </a> - <a href="{% url 'yaksh:courses' %}" class="btn btn-danger"> Back to Courses </a> + <div class="row"> + <div class="col-md-8"> + <ul class="nav nav-pills" id="course_tabs"> + <li class="nav-item"> + <a class="nav-link" href="{% url 'yaksh:courses' %}"> + My Courses + </a> + </li> + <li class="nav-item"> + <a class="nav-link" href="{% url 'yaksh:add_course' %}"> + Add New Course + </a> + </li> + <li class="nav-item dropdown hide"> + <a class="nav-link dropdown-toggle active" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="true">More</a> + <div class="dropdown-menu hide" x-placement="bottom-start" style="position: absolute; transform: translate3d(0px, 37px, 0px); top: 0px; left: 0px; will-change: transform;"> + <a class="dropdown-item" href="{% url 'yaksh:show_all_quizzes' %}"> + View Quizzes + </a> + <a class="dropdown-item" href="{% url 'yaksh:show_all_lessons' %}"> + View Lessons + </a> + <a class="dropdown-item" href="{% url 'yaksh:show_all_modules' %}"> + View Modules + </a> + <a href="{% url 'grades:grading_systems'%}" class="dropdown-item active" > + View Grading Systems + </a> + </div> + </li> + </ul> + </div> + </div> + <hr> + <a href="{% url 'grades:add_grade' %}" class="btn btn-success btn-lg"> + <span class=" fa fa-plus-circle"></span> Add a Grading System + </a> <br><br> <b> Available Grading Systems: </b> <table class="table"> diff --git a/grades/views.py b/grades/views.py index 67844bd..7403e4e 100644 --- a/grades/views.py +++ b/grades/views.py @@ -1,7 +1,7 @@ from django.shortcuts import render from django.contrib.auth.decorators import login_required from django.forms import inlineformset_factory -from grades.forms import GradingSystemForm +from grades.forms import GradingSystemForm, GradeRangeForm from grades.models import GradingSystem, GradeRange @@ -21,7 +21,7 @@ def add_grading_system(request, system_id=None): if system_id is not None: grading_system = GradingSystem.objects.get(id=system_id) GradeRangeFormSet = inlineformset_factory(GradingSystem, GradeRange, - fields='__all__', extra=0) + GradeRangeForm, extra=0) grade_form = GradingSystemForm(instance=grading_system) is_default = (grading_system is not None and grading_system.name == 'default') @@ -38,7 +38,7 @@ def add_grading_system(request, system_id=None): formset.save() if 'add' in request.POST: GradeRangeFormSet = inlineformset_factory( - GradingSystem, GradeRange, fields='__all__', extra=1 + GradingSystem, GradeRange, GradeRangeForm, extra=1 ) formset = GradeRangeFormSet(instance=grading_system) |