Commit 7eba6986 authored by nheoxoz's avatar nheoxoz

Merge branch 'origin/assignmentsv2'

parents d14ca48c f382bad6
...@@ -6,9 +6,9 @@ from .models import Assignment, Course ...@@ -6,9 +6,9 @@ from .models import Assignment, Course
class AssignmentAdmin(admin.ModelAdmin): class AssignmentAdmin(admin.ModelAdmin):
model = Assignment model = Assignment
list_display = ('assignment_name', 'description', 'course', 'perfect_score',) list_display = ('name', 'description', 'course', 'perfect_score',)
search_fields = ('assignment_name', 'description', 'course', 'perfect_score',) search_fields = ('name', 'description', 'course', 'perfect_score',)
list_filter = ('assignment_name', 'description', 'course', 'perfect_score',) list_filter = ('name', 'description', 'course', 'perfect_score',)
class CourseAdmin(admin.ModelAdmin): class CourseAdmin(admin.ModelAdmin):
......
from django.db import models from django.db import models
from django.urls import reverse
class Course(models.Model): class Course(models.Model):
code = models.CharField(max_length=10) code = models.CharField(max_length=10)
...@@ -14,15 +16,21 @@ class Course(models.Model): ...@@ -14,15 +16,21 @@ class Course(models.Model):
class Assignment(models.Model): class Assignment(models.Model):
assignment_name = models.CharField(max_length=50) name = models.CharField(max_length=50)
description = models.TextField() description = models.TextField()
course = models.ForeignKey(Course, on_delete=models.CASCADE) course = models.ForeignKey(Course, on_delete=models.CASCADE)
perfect_score = models.IntegerField() perfect_score = models.IntegerField()
def __str__(self): def __str__(self):
return '''{}, {}, {}, {}'''.format( return'''{}, {}, {}, {}'''.format(
self.assignment_name, self.name,
self.description, self.description,
self.course, self.course,
self.perfect_score, self.perfect_score,
) )
def passing_score(self):
return round(self.perfect_score * 0.6)
def get_absolute_url(self):
return reverse('assignments:assignment-details', kwargs={'pk': self.pk})
{% extends 'base.html' %}
{% block title %} Add Assignment {% endblock %}
{% block heading %} Add a new assignment: {% endblock %}
{% block content %}
<form method="POST">
{% csrf_token %}
{{ form.as_p }}
<input type="SUBMIT" value="Save New Assignment">
</form>
{% endblock %}
{% extends 'base.html' %}
{% block title %} {{ assignment.name }} {% endblock %}
{% block heading %} {{ assignment.name }} {% endblock %}
{% block content %}
<p>
{{ assignment.course.code }} {{ assignment.course.title }} - {{ assignment.course.section }}<br>
Description: {{ assignment.description }}<br>
Perfert Score: {{ assignment.perfect_score }}<br>
Passing Score: {{ assignment.passing_score }}
</p>
<a href="{% url 'assignments:assignment-edit' assignment.id %}">
<button>Edit Assignment</button>
</a><br>
{% endblock %}
{% extends 'base.html' %}
{% block title %} Edit Assignment {% endblock %}
{% block heading %} Edit Assignment: {% endblock %}
{% block content %}
<form method="POST">
{% csrf_token %}
{{ form.as_p }}
<input type="SUBMIT" value="Save Changes to Assignment">
</form>
{% endblock %}
{% extends 'base.html' %}
{% load static %}
{% block title %} Widget's Assignments {% endblock %}
{% block heading %} Welcome to Widget's Assignments! {% endblock %}
{% block content %}
<div class="main">
<div class="list">
<ul>
{% for assignment in assignments %}
<a href="{{ assignment.get_absolute_url }}">
<li>{{assignment.name}}</li>
</a>
{% endfor %}
</ul>
</div>
<a href="{% url 'assignments:assignment-add' %}" class="add-btn"><i class="fa fa-plus"></i> New Assignment</a>
</div>
{% endblock %}
{% block footing %}
<div class="links">
<a href="/dashboard/" class="btn-primary">Dashboard -- </a>
<a href="/announcements/" class="btn-primary"> Announcements -- </a>
<a href="/forum/" class="btn-primary"> Forum -- </a>
<a href="/widget_calendar/" class="btn-primary"> Calendar </a>
</div>
{% endblock %}
from django.urls import path from django.urls import path
from .views import index from .views import Assignments, AssignmentDetailView, AssignmentAddView, AssignmentEditView
urlpatterns = [ urlpatterns = [
path('', index, name= 'index'), path('', Assignments, name="assignments"),
path('<int:pk>/details/', AssignmentDetailView.as_view(), name='assignment-details'),
path('add/', AssignmentAddView.as_view(), name='assignment-add'),
path('<int:pk>/edit/', AssignmentEditView.as_view(), name='assignment-edit'),
] ]
app_name = "assignments" app_name = 'assignments'
\ No newline at end of file
from django.http import HttpResponse from django.shortcuts import render
from django.views.generic.detail import DetailView
from django.views.generic.edit import CreateView
from django.views.generic.edit import UpdateView
from .models import Assignment from .models import Assignment
def index(request):
return_string = "<p>Widget's Assignment Page</p>" def Assignments(request):
for a in Assignment.objects.all(): assignments = Assignment.objects.all()
return_string += '''Assignment Name: {} <br>Description: {} dict_assignments = {
<br>Perfect Score: {} <br>Passing Score: {} 'assignments': assignments,
<br>Course/Section: {} {}-{}<br><br>'''.format( }
a.assignment_name, return render(request, 'assignments/assignments.html', dict_assignments)
a.description,
a.perfect_score,
int(a.perfect_score * 0.60), class AssignmentDetailView(DetailView):
a.course.code, model = Assignment
a.course.title, template_name = 'assignments/assignment-details.html'
a.course.section,
)
class AssignmentAddView(CreateView):
html_string = '<html><body>{}</body></html>'.format(return_string) model = Assignment
return HttpResponse(html_string) fields = '__all__'
template_name = 'assignments/assignment-add.html'
class AssignmentEditView(UpdateView):
model = Assignment
fields = '__all__'
template_name = 'assignments/assignment-edit.html'
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment