diff --git a/DOSPORTAL/admin.py b/DOSPORTAL/admin.py
index 87ed70c..1e53495 100644
--- a/DOSPORTAL/admin.py
+++ b/DOSPORTAL/admin.py
@@ -1,6 +1,6 @@
from django.contrib import admin
from .models import *
-
+from markdownx.admin import MarkdownxModelAdmin
from import_export import resources
from import_export.admin import ImportExportModelAdmin
diff --git a/DOSPORTAL/forms.py b/DOSPORTAL/forms.py
index b3ede71..f43e77b 100644
--- a/DOSPORTAL/forms.py
+++ b/DOSPORTAL/forms.py
@@ -4,7 +4,7 @@
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm
-
+from markdownx.fields import MarkdownxFormField
class LoginForm(forms.Form):
username = forms.CharField(
@@ -81,6 +81,10 @@ def __init__(self,*args, user=None, **kwargs):
help_text="Select used detector. It is not mandatory in case of detectors with auto-detect feature."
)
+ description = MarkdownxFormField(
+
+ )
+
record_type = forms.ChoiceField(
choices=Record.RECORD_TYPES
)
diff --git a/DOSPORTAL/migrations/0009_record_description.py b/DOSPORTAL/migrations/0009_record_description.py
new file mode 100644
index 0000000..7550760
--- /dev/null
+++ b/DOSPORTAL/migrations/0009_record_description.py
@@ -0,0 +1,19 @@
+# Generated by Django 4.2.11 on 2024-04-04 16:43
+
+from django.db import migrations
+import markdownx.models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('DOSPORTAL', '0008_record_created_alter_record_data_file'),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name='record',
+ name='description',
+ field=markdownx.models.MarkdownxField(blank=True, help_text='Description of the record', verbose_name='Description'),
+ ),
+ ]
diff --git a/DOSPORTAL/models.py b/DOSPORTAL/models.py
index 3ea9f3c..9f9c666 100644
--- a/DOSPORTAL/models.py
+++ b/DOSPORTAL/models.py
@@ -13,8 +13,9 @@
from django.contrib.contenttypes.models import ContentType
from django.db import models
from django.contrib.gis.db import models as geomodels
-
+from markdownx.models import MarkdownxField
import json
+from markdownx.utils import markdownify
from .tasks import process_flight_entry, process_record_entry
@@ -472,6 +473,11 @@ def user_directory_path_data(instance, filename):
blank=True
)
+ description = MarkdownxField(
+ verbose_name=_("Description"),
+ help_text=_("Description of the record"),
+ blank=True
+ )
log_original_filename = models.CharField(
verbose_name = _("Original filename of log file"),
@@ -552,10 +558,13 @@ def save(self, *args, **kwargs):
def __str__(self) -> str:
return "record ({}, {}, start {}, {})".format(self.belongs, self.log_original_filename, self.time_start, 0)
- def description(self) -> str:
- return "Record ({}, {})".format(get_enum_dsc(self.RECORD_TYPES, self.record_type), self.time_start.strftime("%Y-%m-%d_%H:%M"))
+ # def description(self) -> str:
+ # return "Record ({}, {})".format(get_enum_dsc(self.RECORD_TYPES, self.record_type), self.time_start.strftime("%Y-%m-%d_%H:%M"))
+ @property
+ def formatted_markdown(self):
+ return markdownify(self.description)
diff --git a/DOSPORTAL/settings.py b/DOSPORTAL/settings.py
index 4e49895..6a16f30 100644
--- a/DOSPORTAL/settings.py
+++ b/DOSPORTAL/settings.py
@@ -56,12 +56,16 @@
'crispy_forms',
'crispy_bootstrap5',
'django_gravatar',
-
+ 'markdownx',
'prettyjson',
'organizations',
]
+MARKDOWNX_MARKDOWN_EXTENSIONS = [
+ 'markdown.extensions.extra'
+]
+
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
diff --git a/DOSPORTAL/templates/records/record_detail.html b/DOSPORTAL/templates/records/record_detail.html
index ece1549..ff7a572 100644
--- a/DOSPORTAL/templates/records/record_detail.html
+++ b/DOSPORTAL/templates/records/record_detail.html
@@ -6,12 +6,12 @@
-