Skip to content

Commit

Permalink
modifications of model view
Browse files Browse the repository at this point in the history
  • Loading branch information
roman-dvorak committed Apr 4, 2024
1 parent ba4a66a commit 8b2f6b4
Show file tree
Hide file tree
Showing 14 changed files with 223 additions and 23 deletions.
18 changes: 18 additions & 0 deletions DOSPORTAL/migrations/0010_detectortype_detector_image.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 4.2.11 on 2024-04-04 22:30

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('DOSPORTAL', '0009_record_description'),
]

operations = [
migrations.AddField(
model_name='detectortype',
name='Detector image',
field=models.ImageField(blank=True, help_text='Detector image', null=True, upload_to='detector_images'),
),
]
19 changes: 19 additions & 0 deletions DOSPORTAL/migrations/0011_detectortype_description.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Generated by Django 4.2.11 on 2024-04-04 22:32

from django.db import migrations
import markdownx.models


class Migration(migrations.Migration):

dependencies = [
('DOSPORTAL', '0010_detectortype_detector_image'),
]

operations = [
migrations.AddField(
model_name='detectortype',
name='description',
field=markdownx.models.MarkdownxField(blank=True, help_text='Detector description', verbose_name='Description'),
),
]
19 changes: 19 additions & 0 deletions DOSPORTAL/migrations/0012_alter_detectortype_description.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Generated by Django 4.2.11 on 2024-04-04 22:32

from django.db import migrations
import markdownx.models


class Migration(migrations.Migration):

dependencies = [
('DOSPORTAL', '0011_detectortype_description'),
]

operations = [
migrations.AlterField(
model_name='detectortype',
name='description',
field=markdownx.models.MarkdownxField(blank=True, help_text='Detector description', verbose_name='Detector description'),
),
]
18 changes: 18 additions & 0 deletions DOSPORTAL/migrations/0013_detectortype_url.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 4.2.11 on 2024-04-04 22:54

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('DOSPORTAL', '0012_alter_detectortype_description'),
]

operations = [
migrations.AddField(
model_name='detectortype',
name='url',
field=models.URLField(blank=True, null=True),
),
]
42 changes: 40 additions & 2 deletions DOSPORTAL/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,6 @@ def user_directory_path(instance, filename):
blank=True
)


def get_absolute_url(self):
return reverse('flight-detail', args=[str(self.id)])

Expand Down Expand Up @@ -202,7 +201,7 @@ class DetectorManufacturer(UUIDMixin):
url = models.URLField(max_length=200)

def __str__(self) -> str:
return "Detector manufacturer: {}".format(self.name)
return "Detector manufacturer: <a href='{}'>{}</a>".format(self.url, self.name)

class DetectorType(UUIDMixin):

Expand All @@ -215,11 +214,43 @@ class DetectorType(UUIDMixin):
on_delete=models.CASCADE
)

image = models.ImageField(
name=_("Detector image"),
help_text=_("Detector image"),
upload_to='detector_images',
null=True,
blank=True
)

url = models.URLField(
max_length=200,
null=True,
blank=True
)

description = MarkdownxField(
verbose_name=_("Detector description"),
help_text=_("Detector description"),
blank=True
)

def get_absolute_url(self):
return reverse('detector-type-view', args=[str(self.id)])

def get_admin_url(self):
return reverse("admin:%s_%s_change" % (self._meta.app_label, self._meta.model_name), args=(self.id,))

def __str__(self) -> str:
return "Detector type {} ({})".format(self.name, self.manufacturer.name)


@property
def description_formatted(self):
return markdownify(self.description)




class DetectorCalib(UUIDMixin):

name = models.CharField(
Expand Down Expand Up @@ -311,9 +342,16 @@ class Detector(UUIDMixin):

)

def get_absolute_url(self):
return reverse('detector-view', args=[str(self.id)])

def __str__(self) -> str:
return "Detector {} ({}), SN:{}".format(self.name, self.type.manufacturer.name, self.sn)

@property
def formatted_label(self):
return f"""<a class='btn btn-sm btn-info' href='{self.type.get_absolute_url()}'> <i class='bi bi-cpu-fill'></i> {self.type.name}</a>
<a class='btn btn-sm btn-info' href='{self.get_absolute_url()}'>{self.name} <span class='text-small text-muted'>({self.sn})</span></a>"""


class DetectorLogbook(UUIDMixin):
Expand Down
Binary file added DOSPORTAL/static/img/login_background.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions DOSPORTAL/templates/base.html
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,11 @@
</head>
<body>

<div style="position: fixed; bottom: 20px; right: 20px; background-color: #ffa6a6; padding: 10px; border-radius: 5px; box-shadow: 0px 0px 10px rgba(0,0,0,0.5); z-index: 9999; text-align: center;">
Demo-version of DOSPORTAL tool for EURADOS 2024 <br>
DOSPORTAL is developed by <a href="https://www.ust.cz">www.ust.cz</a>
</div>

<nav id="overlay" class="navbar navbar-expand-lg bg-body-tertiary border-bottom ">
<div class="container">
<a class="navbar-brand" href="#">
Expand Down
48 changes: 48 additions & 0 deletions DOSPORTAL/templates/detectors/detector_type_detail.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@


{% extends "base.html" %}

{% block content %}

<style>
.content-resize {

}

.content-resize img {
max-width: 100%;
}
</style>

<div class="card my-4">
<div class="card-header d-flex justify-content-between">
<span > Detector type: <span class="h3"><a class="text-decoration-none" href="{{detector.url}}">{{detector.name}} <i class="bi bi-box-arrow-up-right small"></i></a> </span></span>
<span class="text-muted"> {{detector.id}}
{% if user.is_authenticated %}
<a href="{{detector.get_admin_url}}"><i class="bi bi-pencil"></i></a>
{%endif%}
</span>
</div>
<div class="card-body">
{{ detector.image }}
<img src="{{ detector.image.url }}">

<span> {{detector.manufacturer | safe}} </span>
{% if detector.description %}

<div class="m-3 callout content-resize" style="overflow: hidden;">
{{detector.description_formatted | safe}}
</div>
{%endif%}


</div>
</div>


</div>


</div>

{% endblock %}
55 changes: 38 additions & 17 deletions DOSPORTAL/templates/records/record_detail.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,24 +25,45 @@
</div>
<div class="card-body">

<table class="table table-borderless">
<tbody>
<tr>
<td class="w-auto">Detector:</td>
<td class="">{{ record.detector.formatted_label | safe }}</td>
</tr>
<tr>
<td class="w-auto">Record start time:</td>
<td class="">{{ record.time_start }}</td>
</tr>
<tr>
<td class="w-auto">Record duration:</td>
<td class="">{{ record.record_duration }}</td>
</tr>
<tr>
<td class="w-auto">Type:</td>
<td class="">{{ record.get_record_type_display }}</td>
</tr>
<tr>
<td class="w-auto">Author:</td>
<td class="">{{record.author}} on behalf of {{ record.belongs }}, Log is {{record.get_data_policy_display}}, {{record.author}}</td>
</tr>
<tr>
<td class="w-auto">Log file:</td>
<td class="">{{record.log_original_filename}} ({{ record.log_file | filesize_mb }})</td>
</tr>
{% if record.metadata|length > 4 %} <tr>
<td class="w-auto">Advanced metadata:</td>
<td class="callout"><code>{{record.metadata}})</code></td>
</tr> {% endif %}
{% if record.description|length > 1 %}<tr>
<td class="w-auto">Description:</td>
<td class="callout">{{record.formatted_markdown | safe }}</td>
</tr> {% endif %}
</tbody>
</table>



<ul>
<li><strong>Detector:</strong> <a href="/detector/{{record.detector.id}}">{{ record.detector }}</a>
<li><strong>Record start time:</strong> {{ record.time_start }}
<li><strong>Record duration:</strong> {{ record.record_duration }}</li>
<li><strong>Type:</strong> {{ record.get_record_type_display }}
<li><strong>Author:</strong> {{record.author}} behalf of {{ record.belongs }}, Log is {{record.get_data_policy_display}}, {{record.author}}</li>
{% if record.metadata|length > 4 %}
<li><strong>Advanced metadata:</strong></li>
<div class="callout">{{ record.metadata }}</div>
{% endif %}
{% if record.description|length > 1 %}
<li><strong>Description:</strong>
<div class="callout"> {{record.formatted_markdown | safe }} </div>
{% endif %}
<li><strong>Log file: </strong> {{record.log_original_filename}} ({{ record.log_file | filesize_mb }})

</ul>
</div>
</div>
</ul>
Expand Down
7 changes: 6 additions & 1 deletion DOSPORTAL/templates/user/login.html
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@
margin: 0;
background-color: #f5f5f5;
background-image: linear-gradient(rgba(196, 196, 196, 0.5), rgba(255, 255, 255, 0)),
url({% static 'img/login_background.png' %});
url({% static 'img/login_background.jpg' %});
background-size: cover;
}

Expand All @@ -104,6 +104,11 @@
<form method="post"> {% csrf_token %}
<img class="mb-4" src="/docs/5.0/assets/brand/bootstrap-logo.svg" alt="" width="72" height="57">
<h1 class="h3 mb-3 fw-normal text-center">Please sign in ...</h1>
{% if error %}
<div class="alert alert-danger" role="alert">
{{ error }}
</div>
{% endif %}

{{ form | crispy }}

Expand Down
4 changes: 3 additions & 1 deletion DOSPORTAL/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
from .users.views_users import user_profile, login_view
from .users import urls as user_urls
from .views import MeasurementsListView, MeasurementDetailView, MeasurementNewView, MeasurementNewView, MeasurementDataView, measuredDataGet, measuredSpectraGet, MeasurementRecordNewView
from .views_detectors import DetectorView, DetectorEditView,DetectorOverview, DetectorNewLogbookRecord
from .views_detectors import DetectorView, DetectorEditView,DetectorOverview, DetectorNewLogbookRecord, DetectorTypeView
from .views_flights import FlightView
from .views_record import RecordsListView, RecordView, RecordNewView, GetSpectrum, GetEvolution, GetHistogram

Expand Down Expand Up @@ -77,6 +77,8 @@
path('detectors/', DetectorOverview.as_view(), name="detector-overview"),
path('detector/<uuid:pk>/edit/', DetectorEditView, name="detector-edit"),
path('detector/<uuid:pk>/', DetectorView, name="detector-view"),

path('detector_type/<uuid:pk>/', DetectorTypeView, name="detector-type-view"),

path("select2/", include("django_select2.urls")),
path('martor/', include('martor.urls')),
Expand Down
2 changes: 1 addition & 1 deletion DOSPORTAL/users/views_users.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def login_view(request):
login(request, user)
return redirect('home')
else:
return render(request, 'login.html', {'form': form, 'error': 'Invalid username or password'})
return render(request, 'user/login.html', {'form': form, 'error': 'Invalid username or password'})
else:
form = LoginForm()
return render(request, 'user/login.html', {'form': form})
6 changes: 6 additions & 0 deletions DOSPORTAL/views_detectors.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ def DetectorView(request, pk):
#return HttpResponse(a)
return render(request, 'detectors/detectors_detail.html', context={'detector': detector, 'DetectorLogblogForm': DetectorLogblogForm})


def DetectorEditView(request, pk=None):
detectorEditForm = DetectorEditForm( instance=Detector.objects.get(pk=pk) if pk else None)

Expand Down Expand Up @@ -74,3 +75,8 @@ def DetectorNewLogbookRecord(request, pk):
return redirect('detector-view', pk=pk)
#return HttpResponse(a)



def DetectorTypeView(request, pk):
detectorType = DetectorType.objects.get(pk=pk)
return render(request, 'detectors/detector_type_detail.html', context={'detector': detectorType})
3 changes: 2 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ ENV PYTHONDONTWRITEBYTECODE=1
ENV PYTHONUNBUFFERED=1

RUN apt-get update
RUN apt-get install -y python3 net-tools python3-pip libpq-dev redis binutils libproj-dev gdal-bin
RUN apt-get install -y python3 python3-pip libpq-dev binutils libproj-dev gdal-bin
#RUN apt-get install -y net-tools

WORKDIR /DOSPORTAL
COPY requirements.txt /DOSPORTAL/
Expand Down

0 comments on commit 8b2f6b4

Please sign in to comment.