From 8691b0509a9b2c152a2a51c488bd362655a6c6ac Mon Sep 17 00:00:00 2001
From: Artem Bulgakov ', obj.image.url, obj.image.url)
+
+ reference_image.short_description = 'Reference'
+ reference_image.allow_tags = True
+
class Media:
pass
diff --git a/adminpage/sport/forms/__init__.py b/adminpage/sport/forms/__init__.py
deleted file mode 100644
index e69de29b..00000000
diff --git a/adminpage/sport/forms/medical.py b/adminpage/sport/forms/medical.py
deleted file mode 100644
index da684b84..00000000
--- a/adminpage/sport/forms/medical.py
+++ /dev/null
@@ -1,12 +0,0 @@
-from django import forms
-
-
-class MedicalGroupReferenceForm(forms.Form):
- references = forms.ImageField()
- student_comment = forms.CharField(
- widget=forms.Textarea,
- max_length=1024,
- label="Comments (optional)",
- required=False,
- empty_value='-'
- )
diff --git a/adminpage/sport/migrations/0124_remove_medicalgroupreference_image_and_more.py b/adminpage/sport/migrations/0124_remove_medicalgroupreference_image_and_more.py
deleted file mode 100644
index 97cf01bc..00000000
--- a/adminpage/sport/migrations/0124_remove_medicalgroupreference_image_and_more.py
+++ /dev/null
@@ -1,32 +0,0 @@
-# Generated by Django 4.2 on 2024-11-28 09:58
-
-from django.db import migrations, models
-import django.db.models.deletion
-import sport.models.medical_group_reference
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('sport', '0123_auto_20230205_1938'),
- ]
-
- operations = [
- migrations.RemoveField(
- model_name='medicalgroupreference',
- name='image',
- ),
- migrations.CreateModel(
- name='MedicalGroupReferenceImage',
- fields=[
- ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
- ('image', models.ImageField(upload_to=sport.models.medical_group_reference.get_reference_path)),
- ('reference', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='images', to='sport.medicalgroupreference', verbose_name='medical reference')),
- ],
- options={
- 'verbose_name': 'medical group reference image',
- 'verbose_name_plural': 'medical group reference images',
- 'db_table': 'medical_group_reference_image',
- },
- ),
- ]
diff --git a/adminpage/sport/migrations/0126_merge_20250116_2312.py b/adminpage/sport/migrations/0126_merge_20250116_2312.py
deleted file mode 100644
index f0acb834..00000000
--- a/adminpage/sport/migrations/0126_merge_20250116_2312.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# Generated by Django 5.1.3 on 2025-01-16 20:12
-
-from django.db import migrations
-
-
-class Migration(migrations.Migration):
-
- dependencies = [
- ('sport', '0124_remove_medicalgroupreference_image_and_more'),
- ('sport', '0125_alter_group_allowed_students'),
- ]
-
- operations = [
- ]
diff --git a/adminpage/sport/models/__init__.py b/adminpage/sport/models/__init__.py
index cfc43da8..f463433c 100644
--- a/adminpage/sport/models/__init__.py
+++ b/adminpage/sport/models/__init__.py
@@ -6,7 +6,7 @@
from .enums import MedicalGroups, StudentStatuses, Gender
from .group import Group
from .medical_group import MedicalGroup
-from .medical_group_reference import MedicalGroupReference, MedicalGroupReferenceImage
+from .medical_group_reference import MedicalGroupReference
from .medical_group_history import MedicalGroupHistory
from .reference import Reference
from .schedule import Schedule
diff --git a/adminpage/sport/models/medical_group_reference.py b/adminpage/sport/models/medical_group_reference.py
index 9c095cc7..f6255c8e 100644
--- a/adminpage/sport/models/medical_group_reference.py
+++ b/adminpage/sport/models/medical_group_reference.py
@@ -1,13 +1,16 @@
import uuid
+from typing import Tuple
from django.conf import settings
from django.db import models
+from sport.utils import SubmissionType
+
def get_reference_path(instance, filename):
ext = filename.split('.')[-1]
return f'{settings.MEDICAL_GROUP_REFERENCE_FOLDER}/' \
- f'{instance.reference.student.pk}/{uuid.uuid4()}.{ext}'
+ f'{instance.student.pk}/{uuid.uuid4()}.{ext}'
class MedicalGroupReference(models.Model):
@@ -16,6 +19,10 @@ class MedicalGroupReference(models.Model):
on_delete=models.CASCADE,
)
+ image = models.ImageField(
+ upload_to=get_reference_path,
+ )
+
resolved = models.BooleanField(null=True)
semester = models.ForeignKey(
@@ -29,30 +36,14 @@ class MedicalGroupReference(models.Model):
null=False
)
student_comment = models.TextField(max_length=1024, null=True, blank=True, verbose_name="Student's comment")
+ # def __str__(self):
+ # return f'{self.student} - {self.semester}'
+
+ def get_submission_url(self) -> Tuple[SubmissionType, str]:
+ return SubmissionType.IMAGE, self.image.url
def __str__(self):
return f"{self.student} {self.uploaded.strftime('%Y-%m-%d %H:%M:%S')} for {self.semester}"
class Meta:
db_table = "medical_group_reference"
-
-
-class MedicalGroupReferenceImage(models.Model):
- reference = models.ForeignKey(
- "MedicalGroupReference",
- verbose_name="medical reference",
- related_name="images",
- on_delete=models.CASCADE,
- )
-
- image = models.ImageField(
- upload_to=get_reference_path,
- )
-
- def __str__(self) -> str:
- return f"{self.reference} image {self.pk}"
-
- class Meta:
- db_table = "medical_group_reference_image"
- verbose_name = "medical group reference image"
- verbose_name_plural = "medical group reference images"
diff --git a/adminpage/sport/signals/reference.py b/adminpage/sport/signals/reference.py
index 2aedc89c..7a20baeb 100644
--- a/adminpage/sport/signals/reference.py
+++ b/adminpage/sport/signals/reference.py
@@ -2,9 +2,9 @@
from django.db.models.signals import post_save
from django.dispatch.dispatcher import receiver
-from sport.models import Reference, Group, MedicalGroupReference, MedicalGroupReferenceImage
+from sport.models import Reference, Group, MedicalGroupReference
from sport.signals.utils import create_attendance_record
-from sport.utils import format_submission_html, SubmissionType
+from sport.utils import format_submission_html
@receiver(post_save, sender=Reference)
@@ -59,25 +59,22 @@ def medical_group_updated(
):
if created or instance.resolved is None:
return
- submissions_urls = '\n'.join(
- [
- format_submission_html(SubmissionType.IMAGE, image.image.path)
- for image in MedicalGroupReferenceImage.objects.filter(
- reference_id=instance.pk
- )
- ]
- )
+
if instance.resolved:
instance.student.notify(
*settings.EMAIL_TEMPLATES['medical_group_success'],
semester=instance.semester,
medical_group=instance.student.medical_group.name,
- submission=submissions_urls
+ submission=format_submission_html(
+ *instance.get_submission_url()
+ ),
)
else:
instance.student.notify(
*settings.EMAIL_TEMPLATES['medical_group_reject'],
semester=instance.semester,
comment=instance.comment,
- submission=submissions_urls
+ submission=format_submission_html(
+ *instance.get_submission_url()
+ ),
)
diff --git a/adminpage/sport/templates/med_group_reference.html b/adminpage/sport/templates/med_group_reference.html
index 7f08d52c..af6404b7 100644
--- a/adminpage/sport/templates/med_group_reference.html
+++ b/adminpage/sport/templates/med_group_reference.html
@@ -29,11 +29,7 @@
Based on the reference you will be assigned a health group.
- {{ forms.medical_group_reference.student_comment.label }} - {{ forms.medical_group_reference.student_comment }} -
+ {{ forms.medical_group_reference.as_p }}