Skip to content
This repository was archived by the owner on Jan 22, 2025. It is now read-only.

Commit 4d5a325

Browse files
authored
Merge pull request #53 from SELab-2/52-django-admin-functionality
52 Add addition django admin functionality
2 parents 726cc16 + 785e838 commit 4d5a325

File tree

6 files changed

+283
-15
lines changed

6 files changed

+283
-15
lines changed
+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
from django.contrib import admin
2+
3+
from backend.pigeonhole.apps.courses.models import Course
4+
5+
6+
class CourseAdmin(admin.ModelAdmin):
7+
list_display = (
8+
'name',
9+
'course_id',
10+
)
11+
search_fields = (
12+
'name',
13+
'course_id',
14+
'description',
15+
)
16+
ordering = (
17+
'course_id',
18+
)
19+
20+
fieldsets = (
21+
(
22+
None,
23+
{
24+
'fields': (
25+
'name',
26+
'description',
27+
)
28+
}
29+
),
30+
)
31+
32+
33+
admin.site.register(Course, CourseAdmin)
+64
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
from django.contrib import admin
2+
3+
from backend.pigeonhole.apps.groups.models import Group
4+
5+
6+
class GroupAdmin(admin.ModelAdmin):
7+
list_display = (
8+
'group_id',
9+
'group_nr',
10+
'project_id',
11+
)
12+
search_fields = (
13+
'group_id',
14+
'group_nr',
15+
'project_id',
16+
)
17+
ordering = (
18+
'group_id',
19+
)
20+
21+
fieldsets = (
22+
(
23+
None,
24+
{
25+
'fields': (
26+
'group_nr',
27+
'project_id',
28+
)
29+
}
30+
),
31+
(
32+
'Group members',
33+
{
34+
'fields': (
35+
'user',
36+
)
37+
}
38+
),
39+
(
40+
'Evaluation',
41+
{
42+
'fields': (
43+
'final_score',
44+
'feedback',
45+
)
46+
}
47+
),
48+
(
49+
'Visibility',
50+
{
51+
'fields': (
52+
'visible',
53+
)
54+
}
55+
),
56+
)
57+
58+
raw_id_fields = (
59+
'project_id',
60+
'user',
61+
)
62+
63+
64+
admin.site.register(Group, GroupAdmin)
+72
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
from django.contrib import admin
2+
3+
from backend.pigeonhole.apps.projects.models import Project
4+
5+
6+
class ProjectAdmin(admin.ModelAdmin):
7+
list_display = (
8+
'name',
9+
'project_id',
10+
)
11+
search_fields = (
12+
'name',
13+
'project_id',
14+
'description',
15+
)
16+
ordering = (
17+
'project_id',
18+
)
19+
20+
fieldsets = (
21+
(
22+
None,
23+
{
24+
'fields': (
25+
'name',
26+
'description',
27+
'deadline',
28+
'max_score',
29+
)
30+
}
31+
),
32+
(
33+
'Course',
34+
{
35+
'fields': (
36+
'course_id',
37+
)
38+
}
39+
),
40+
(
41+
'Groups',
42+
{
43+
'fields': (
44+
'number_of_groups',
45+
'group_size',
46+
)
47+
}
48+
),
49+
(
50+
'Files',
51+
{
52+
'fields': (
53+
'file_structure',
54+
)
55+
}
56+
),
57+
(
58+
'Visibility',
59+
{
60+
'fields': (
61+
'visible',
62+
)
63+
}
64+
),
65+
)
66+
67+
raw_id_fields = (
68+
'course_id',
69+
)
70+
71+
72+
admin.site.register(Project, ProjectAdmin)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
from django.contrib import admin
2+
3+
from backend.pigeonhole.apps.submissions.models import Submissions
4+
5+
6+
class SubmissionAdmin(admin.ModelAdmin):
7+
list_display = (
8+
'submission_id',
9+
'group_id',
10+
'submission_nr',
11+
)
12+
search_fields = (
13+
'submission_id',
14+
'group_id',
15+
'submission_nr',
16+
)
17+
ordering = (
18+
'submission_id',
19+
)
20+
21+
fieldsets = (
22+
(
23+
None,
24+
{
25+
'fields': (
26+
'submission_nr',
27+
)
28+
}
29+
),
30+
(
31+
'Group',
32+
{
33+
'fields': (
34+
'group_id',
35+
)
36+
}
37+
),
38+
(
39+
'Files',
40+
{
41+
'fields': (
42+
'file',
43+
)
44+
}
45+
),
46+
(
47+
'Tests',
48+
{
49+
'fields': (
50+
'output_test',
51+
)
52+
}
53+
),
54+
)
55+
56+
raw_id_fields = (
57+
'group_id',
58+
)
59+
60+
61+
admin.site.register(Submissions, SubmissionAdmin)

backend/pigeonhole/apps/users/admin.py

+50-13
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,57 @@
55

66

77
class UserAdmin(BaseUserAdmin):
8-
list_display = ('username', 'id', 'email', 'first_name', 'last_name',)
9-
search_fields = ('username', 'id', 'email', 'first_name', 'last_name',)
10-
ordering = ('username',)
11-
filter_horizontal = ()
8+
list_display = (
9+
'username',
10+
'first_name',
11+
'last_name',
12+
'id',
13+
'email',
14+
)
15+
search_fields = (
16+
'username',
17+
'id',
18+
'email',
19+
'first_name',
20+
'last_name',
21+
)
22+
ordering = (
23+
'username',
24+
)
25+
1226
fieldsets = (
13-
(None, {'fields': (
14-
'username',
15-
'email',
16-
'password',
17-
'first_name',
18-
'last_name',
19-
'course',
20-
'role',
21-
)}),
27+
(
28+
None,
29+
{
30+
'fields': (
31+
'username',
32+
'email',
33+
'password',
34+
'first_name',
35+
'last_name',
36+
)
37+
}
38+
),
39+
(
40+
'Courses',
41+
{
42+
'fields': (
43+
'course',
44+
)
45+
}
46+
),
47+
(
48+
'Permissions',
49+
{
50+
'fields': (
51+
'role',
52+
)
53+
}
54+
),
55+
)
56+
57+
raw_id_fields = (
58+
'course',
2259
)
2360

2461

backend/pigeonhole/urls.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
from django.conf import settings
22
from django.conf.urls.static import static
33
from django.contrib import admin
4+
from django.contrib.auth import views as auth_views
45
from django.shortcuts import redirect
56
from django.urls import include, path as urlpath
6-
from django.contrib.auth import views as auth_views
77
from drf_yasg import openapi
88
from drf_yasg.views import get_schema_view
99
from rest_framework import routers, permissions
@@ -49,7 +49,8 @@ def to_frontend(request, path):
4949
urlpath('redoc/', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc'),
5050
urlpath("admin/", admin.site.urls),
5151
urlpath('auth/login/', TokenObtainPairView.as_view(), name='token_obtain_pair'),
52-
urlpath('auth/logout', auth_views.LogoutView.as_view(next_page=settings.FRONTEND_URL), name='authlogout'),
52+
urlpath('auth/logout', auth_views.LogoutView.as_view(next_page=settings.FRONTEND_URL),
53+
name='authlogout'),
5354
urlpath('auth/refresh/', TokenRefreshView.as_view(), name='token_refresh'),
5455
urlpath('microsoft/', include('microsoft_auth.urls', namespace='microsoft')),
5556
urlpath('redirect/<path:path>', to_frontend, name='redirect'),

0 commit comments

Comments
 (0)