Skip to content

Commit

Permalink
Some UI improvements and cleaning up
Browse files Browse the repository at this point in the history
  • Loading branch information
JasonGrace2282 committed Feb 21, 2025
1 parent ac16e69 commit 27f26e9
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 15 deletions.
2 changes: 1 addition & 1 deletion tin/apps/assignments/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,5 +145,5 @@ def match(self, obj):

@admin.register(SubmissionCap)
class SubmissionCapAdmin(admin.ModelAdmin):
list_display = ("assignment", "submission_cap", "student")
list_display = ("assignment", "submission_cap", "submission_cap_after_due", "student")
save_as = True
12 changes: 5 additions & 7 deletions tin/apps/assignments/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,11 @@ def __init__(self, course, *args, **kwargs):
"issues."
)

cap = instance.submission_caps.filter(student__isnull=True).first()
if cap is not None:
self.fields["submission_cap"].initial = cap.submission_cap
self.fields["submission_cap_after_due"].initial = cap.submission_cap_after_due

# prevent description from getting too big
self.fields["description"].widget.attrs.update({"id": "description"})

Expand Down Expand Up @@ -266,13 +271,6 @@ class Meta:


class SubmissionCapForm(forms.ModelForm):
def __init__(self, **kwargs) -> None:
super().__init__(**kwargs)

nonrequired = ("submission_cap", "submission_cap_after_due")
for f in nonrequired:
self.fields[f].required = False

class Meta:
model = SubmissionCap
fields = ["submission_cap", "submission_cap_after_due"]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Generated by Django 4.2.16 on 2025-01-10 01:57
# Generated by Django 4.2.15 on 2025-02-21 01:04

from django.conf import settings
import django.core.validators
Expand All @@ -18,10 +18,10 @@ class Migration(migrations.Migration):
name='SubmissionCap',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('submission_cap', models.PositiveSmallIntegerField(null=True, validators=[django.core.validators.MinValueValidator(1)])),
('submission_cap_after_due', models.PositiveSmallIntegerField(null=True)),
('submission_cap', models.PositiveSmallIntegerField(blank=True, null=True, validators=[django.core.validators.MinValueValidator(1)])),
('submission_cap_after_due', models.PositiveSmallIntegerField(blank=True, null=True)),
('assignment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='submission_caps', to='assignments.assignment')),
('student', models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
('student', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
],
),
migrations.AddConstraint(
Expand Down
9 changes: 7 additions & 2 deletions tin/apps/assignments/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -434,6 +434,7 @@ class SubmissionCap(models.Model):
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
null=True,
blank=True,
)

assignment = models.ForeignKey(
Expand All @@ -442,8 +443,12 @@ class SubmissionCap(models.Model):
related_name="submission_caps",
)

submission_cap = models.PositiveSmallIntegerField(null=True, validators=[MinValueValidator(1)])
submission_cap_after_due = models.PositiveSmallIntegerField(null=True)
submission_cap = models.PositiveSmallIntegerField(
null=True,
blank=True,
validators=[MinValueValidator(1)],
)
submission_cap_after_due = models.PositiveSmallIntegerField(null=True, blank=True)

class Meta:
constraints = [
Expand Down
5 changes: 5 additions & 0 deletions tin/apps/assignments/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -556,6 +556,10 @@ def student_submissions_view(request, assignment_id, student_id):
else None
)

submission_cap = cap.calculate_submission_cap() if cap is not None else None
if submission_cap == float("inf"):
submission_cap = None

return render(
request,
"assignments/student_submissions.html",
Expand All @@ -569,6 +573,7 @@ def student_submissions_view(request, assignment_id, student_id):
"published_submission": published_submission,
"log_messages": log_messages,
"form": form,
"submission_cap": submission_cap,
},
)

Expand Down
9 changes: 8 additions & 1 deletion tin/templates/assignments/student_submissions.html
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,14 @@ <h2 style="border-top:1px solid lightgray;padding-top:15px;">All Submissions</h2


<h2>Edit Submission Cap</h2>
To change the submission cap for this student, enter a new cap below.
<p style="padding: 5px 0">
To change the submission cap for this student, enter a new cap below.
<br>
{% with sub_count=submissions.count %}
This student has <strong>{{ sub_count }} {% if cap is not None %} / {{ cap }} {% endif %}</strong>
submission{{ sub_count|pluralize }} on this assignment.
{% endwith %}
</p>
<form method="POST">
{% csrf_token %}
{{ form.errors }}
Expand Down

0 comments on commit 27f26e9

Please sign in to comment.