diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 52d87ef..fb53e08 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -13,6 +13,7 @@ Change Log Unreleased ********** +* Add LearningAssistantMessage model 4.3.3 - 2024-10-15 ****************** diff --git a/learning_assistant/migrations/0007_learningassistantmessage.py b/learning_assistant/migrations/0007_learningassistantmessage.py new file mode 100644 index 0000000..88a1606 --- /dev/null +++ b/learning_assistant/migrations/0007_learningassistantmessage.py @@ -0,0 +1,34 @@ +# Generated by Django 4.2.15 on 2024-10-22 12:17 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion +import django.utils.timezone +import model_utils.fields +import opaque_keys.edx.django.models + + +class Migration(migrations.Migration): + + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('learning_assistant', '0006_delete_courseprompt'), + ] + + operations = [ + migrations.CreateModel( + name='LearningAssistantMessage', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, editable=False, verbose_name='created')), + ('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, editable=False, verbose_name='modified')), + ('course_id', opaque_keys.edx.django.models.CourseKeyField(db_index=True, max_length=255)), + ('role', models.CharField(max_length=64)), + ('content', models.TextField()), + ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), + ], + options={ + 'abstract': False, + }, + ), + ] diff --git a/learning_assistant/models.py b/learning_assistant/models.py index 55b3335..c890087 100644 --- a/learning_assistant/models.py +++ b/learning_assistant/models.py @@ -1,10 +1,13 @@ """ Database models for learning_assistant. """ +from django.contrib.auth import get_user_model from django.db import models from model_utils.models import TimeStampedModel from opaque_keys.edx.django.models import CourseKeyField +USER_MODEL = get_user_model() + class LearningAssistantCourseEnabled(TimeStampedModel): """ @@ -21,3 +24,18 @@ class LearningAssistantCourseEnabled(TimeStampedModel): course_id = CourseKeyField(max_length=255, db_index=True, unique=True) enabled = models.BooleanField() + + +class LearningAssistantMessage(TimeStampedModel): + """ + This model stores messages sent to and received from the learning assistant. + + .. pii: content + .. pii_types: other + .. pii_retirement: third_party + """ + + course_id = CourseKeyField(max_length=255, db_index=True) + user = models.ForeignKey(USER_MODEL, db_index=True, on_delete=models.CASCADE) + role = models.CharField(max_length=64) + content = models.TextField()