Skip to content

Commit 347aa15

Browse files
committed
Student personality fields and capstone proposal tracking
1 parent 0ac2b95 commit 347aa15

25 files changed

+464
-99
lines changed

.python-version

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.8.1
1+
3.9.1

LearningAPI.session.sql

+25-57
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,6 @@ FROM public."LearningAPI_opportunity";
88
SELECT *
99
FROM public."LearningAPI_learningrecord";
1010

11-
SELECT *
12-
FROM public."LearningAPI_LearningRecordEntry";
13-
1411
SELECT *
1512
FROM public."socialaccount_socialaccount";
1613

@@ -25,59 +22,35 @@ FROM public."authtoken_token";
2522

2623
select * from pg_catalog.pg_tables;
2724

28-
SELECT *
29-
FROM public."LearningAPI_nssusercohort";
30-
31-
INSERT INTO public."LearningAPI_nssusercohort" (cohort_id, nss_user_id)
32-
VALUES (1, 6);
33-
34-
35-
DELETE from public."LearningAPI_nssusercohort"
36-
where id = 2;
37-
38-
39-
INSERT INTO public."LearningAPI_course" (name)
40-
VALUES ('JavaScript and React');
41-
42-
INSERT INTO public."LearningAPI_book" (name, course_id)
43-
VALUES ('Bangazon', 1);
44-
45-
46-
47-
48-
49-
50-
51-
52-
53-
54-
55-
56-
57-
58-
59-
60-
61-
62-
63-
64-
65-
66-
67-
68-
69-
70-
71-
72-
73-
74-
75-
25+
SELECT * FROM public."LearningAPI_studentpersonality";
7626

27+
INSERT INTO public."LearningAPI_studentpersonality"
28+
(student_id, briggs_myers_type,
29+
bfi_extraversion, bfi_agreeableness, bfi_conscientiousness,
30+
bfi_neuroticism, bfi_openness)
31+
VALUES
32+
(2, 'ENTJ-A', 69, 96, 73, 0, 94);
7733

34+
SELECT * FROM public."LearningAPI_capstone";
35+
SELECT * FROM public."LearningAPI_proposalstatus";
7836

37+
INSERT INTO public."LearningAPI_capstonetimeline"
38+
(capstone_id, status_id, date)
39+
VALUES
40+
(3, 1, '2022-11-04');
7941

8042

43+
INSERT INTO public."LearningAPI_capstone"
44+
(proposal_url, repo_url, course_id,
45+
student_id, description)
46+
VALUES
47+
(
48+
'http://www.claire.com',
49+
'http://www.claire.com',
50+
3,
51+
56,
52+
'Client side capstone proposal'
53+
);
8154

8255

8356

@@ -108,11 +81,6 @@ GROUP BY "LearningAPI_cohort"."id"
10881
;
10982

11083

111-
112-
113-
114-
115-
11684
select * from public."LearningAPI_learningrecord";
11785

11886

@@ -128,4 +96,4 @@ left outer join public."LearningAPI_learningrecord" r
12896
and
12997
r.student_id = 19
13098
where r.achieved is NULL
131-
order by w.tier;
99+
order by w.tier;

LearningAPI/admin.py

+14-5
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,42 @@
11
from django.contrib import admin
22

3-
# Register your models here.
43
from .models.people import NssUser
5-
from .models.skill import (
6-
CoreSkill, CoreSkillRecord,
7-
LearningRecordEntry, LearningRecord, LearningWeight,
8-
)
4+
from .models.coursework import Course
5+
from .models.skill import (CoreSkill, CoreSkillRecord, LearningRecord,
6+
LearningRecordEntry, LearningWeight)
97

108

9+
@admin.register(Course)
10+
class CourseAdmin(admin.ModelAdmin):
11+
"""Core skills"""
12+
list_display = ['name',]
13+
1114
@admin.register(CoreSkill)
1215
class CoreSkillAdmin(admin.ModelAdmin):
16+
"""Core skills"""
1317
list_display = ['label',]
1418

1519
@admin.register(CoreSkillRecord)
1620
class CoreSkillRecordAdmin(admin.ModelAdmin):
21+
"""Core skill records"""
1722
list_display = ('student', 'skill', 'level',)
1823

1924
@admin.register(LearningWeight)
2025
class LearningWeightAdmin(admin.ModelAdmin):
26+
"""Learning weights"""
2127
list_display = ['label', 'weight',]
2228

2329
@admin.register(LearningRecord)
2430
class LearningRecordAdmin(admin.ModelAdmin):
31+
"""Learning records"""
2532
list_display = ['student', 'weight',]
2633

2734
@admin.register(LearningRecordEntry)
2835
class LearningRecordEntryAdmin(admin.ModelAdmin):
36+
"""Learning record entries"""
2937
list_display = ['record', 'instructor', 'note']
3038

3139
@admin.register(NssUser)
3240
class NssUserAdmin(admin.ModelAdmin):
41+
"""Users"""
3342
list_display = ['user', 'slack_handle', 'github_handle']
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Generated by Django 4.0.3 on 2022-10-26 00:13
2+
3+
from django.db import migrations, models
4+
import django.db.models.deletion
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
('LearningAPI', '0008_dailystatus'),
11+
]
12+
13+
operations = [
14+
migrations.AlterModelOptions(
15+
name='learningrecordentry',
16+
options={'ordering': ('-recorded_on',)},
17+
),
18+
migrations.AddField(
19+
model_name='capstone',
20+
name='repo_url',
21+
field=models.CharField(blank=True, max_length=256, null=True),
22+
),
23+
migrations.CreateModel(
24+
name='StudentPersonality',
25+
fields=[
26+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
27+
('briggs_myers_type', models.CharField(blank=True, max_length=6, null=True)),
28+
('bfi_extraversion', models.IntegerField()),
29+
('bfi_agreeableness', models.IntegerField()),
30+
('bfi_conscientiousness', models.IntegerField()),
31+
('bfi_neuroticism', models.IntegerField()),
32+
('bfi_openness', models.IntegerField()),
33+
('student', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='personality', to='LearningAPI.nssuser')),
34+
],
35+
),
36+
]

LearningAPI/models/coursework/capstone.py

+2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33

44
class Capstone(models.Model):
5+
"""Capstone model"""
56
student = models.ForeignKey("NssUser", on_delete=models.DO_NOTHING, related_name="capstones")
67
course = models.ForeignKey("Course", on_delete=models.DO_NOTHING)
78
proposal_url = models.CharField(max_length=256)
9+
repo_url = models.CharField(max_length=256, blank=True, null=True)
810
description = models.CharField(max_length=256)

LearningAPI/models/coursework/capstone_timeline.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22

33

44
class CapstoneTimeline(models.Model):
5-
capstone = models.ForeignKey("Capstone", on_delete=models.DO_NOTHING)
5+
capstone = models.ForeignKey("Capstone", on_delete=models.DO_NOTHING, related_name="statuses")
66
status = models.ForeignKey("ProposalStatus", on_delete=models.DO_NOTHING)
77
date = models.DateField(auto_now=True, auto_now_add=False)

LearningAPI/models/coursework/chapter_note.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
"""Chapter note class module"""
12
from django.db import models
23

34

45
class ChapterNote(models.Model):
6+
"""Notes for book chapters"""
57
user = models.ForeignKey("NssUser", on_delete=models.CASCADE)
68
markdown_text = models.TextField()
79
chapter = models.ForeignKey("Chapter", on_delete=models.CASCADE)
@@ -14,4 +16,4 @@ def votes(self):
1416

1517
@votes.setter
1618
def votes(self, value):
17-
self.__votes = value
19+
self.__votes = value

LearningAPI/models/coursework/course.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,15 @@
44
class Course(models.Model):
55
name = models.CharField(max_length=75)
66

7+
def __str__(self) -> str:
8+
return self.name
9+
710
@property
811
def chapters(self):
9-
return self.__chapters
12+
try:
13+
return self.__chapters
14+
except AttributeError as ex:
15+
return 0
1016

1117
@chapters.setter
1218
def chapters(self, value):

LearningAPI/models/people/__init__.py

+1
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@
99
from .student_assessment_status import StudentAssessmentStatus
1010
from .student_assessment import StudentAssessment
1111
from .daily_status import DailyStatus
12+
from .student_personality import StudentPersonality

LearningAPI/models/people/cohort.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def students(self):
2222
"""
2323
try:
2424
return self.__students
25-
except AttributeError as ex:
25+
except AttributeError:
2626
return 0
2727

2828
@students.setter
@@ -38,10 +38,9 @@ def instructors(self):
3838
"""
3939
try:
4040
return self.__instructors
41-
except AttributeError as ex:
41+
except AttributeError:
4242
return 0
4343

44-
4544
@instructors.setter
4645
def instructors(self, value):
4746
self.__instructors = value
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
"""Student personality profile database model"""
2+
from django.db import models
3+
4+
5+
class StudentPersonality(models.Model):
6+
"""Model for students to enter in their personality profile data"""
7+
student = models.OneToOneField("NSSUser", on_delete=models.CASCADE, related_name='personality')
8+
briggs_myers_type = models.CharField(max_length=6, null=True, blank=True)
9+
bfi_extraversion = models.IntegerField()
10+
bfi_agreeableness = models.IntegerField()
11+
bfi_conscientiousness = models.IntegerField()
12+
bfi_neuroticism = models.IntegerField()
13+
bfi_openness = models.IntegerField()

LearningAPI/views/__init__.py

+4
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,9 @@
1717
from .assessment import StudentAssessmentView
1818
from .assessment_status import AssessmentStatusView
1919
from .slack import SlackChannel
20+
from .slack_message import SlackMessage
2021
from .core_skill_view import CoreSkillViewSet
2122
from .core_skill_record_view import CoreSkillRecordViewSet
23+
from .student_personality_view import StudentPersonalityViewSet
24+
from .proposal_status import ProposalStatusView
25+
from .proposal_timeline import TimelineView

LearningAPI/views/assessment.py

+7-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
1+
"""Assessment view module"""
12
from django.http import HttpResponseServerError
23
from django.utils.decorators import method_decorator
4+
35
from rest_framework import permissions, serializers, status
4-
from rest_framework.viewsets import ViewSet
5-
from rest_framework.response import Response
66
from rest_framework.pagination import PageNumberPagination
7+
from rest_framework.response import Response
8+
from rest_framework.viewsets import ViewSet
9+
710
from LearningAPI.decorators import is_instructor
8-
from LearningAPI.models.people import NssUser, StudentAssessment, StudentAssessmentStatus, Assessment
11+
from LearningAPI.models.people import (Assessment, NssUser, StudentAssessment,
12+
StudentAssessmentStatus)
913

1014

1115
class StudentAssessmentPermission(permissions.BasePermission):

0 commit comments

Comments
 (0)