Skip to content

Commit

Permalink
Allow modifying log entry date
Browse files Browse the repository at this point in the history
  • Loading branch information
siiptuo committed Feb 15, 2024
1 parent 2d7c76d commit 9395dd5
Show file tree
Hide file tree
Showing 6 changed files with 38 additions and 10 deletions.
2 changes: 1 addition & 1 deletion backend/logbook/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@
class LogEntryForm(ModelForm):
class Meta:
model = LogEntry
fields = ["content"]
fields = ["date", "content"]
27 changes: 27 additions & 0 deletions backend/logbook/migrations/0003_logentry_date.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Generated by Django 4.2.7 on 2024-02-15 09:12

import datetime

from django.db import migrations, models


def set_dates(apps, schema_editor):
LogEntry = apps.get_model("logbook", "logentry")
for log_entry in LogEntry.objects.all():
log_entry.date = log_entry.created_at.date()
log_entry.save()


class Migration(migrations.Migration):
dependencies = [
("logbook", "0002_alter_logentry_options"),
]

operations = [
migrations.AddField(
model_name="logentry",
name="date",
field=models.DateField(default=datetime.date.today),
),
migrations.RunPython(set_dates, migrations.RunPython.noop),
]
3 changes: 3 additions & 0 deletions backend/logbook/models.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import datetime

from django.conf import settings
from django.db import models

Expand All @@ -11,5 +13,6 @@ class Meta:
settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="+"
)
content = models.TextField()
date = models.DateField(default=datetime.date.today)
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
2 changes: 1 addition & 1 deletion backend/logbook/templates/logbook/delete.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
<form action="" method="post">
{% csrf_token %}
<div style="margin:1rem 0">
<strong>{{ log_entry.created_at }}</strong>
<strong>{{ log_entry.date }}</strong>
– {{ log_entry.author }}
<br>
{{ log_entry.content | linebreaks }}
Expand Down
2 changes: 1 addition & 1 deletion backend/logbook/templates/logbook/view.html
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
{% block body %}
{% for event in events %}
<div class="entry">
<time datetime="{{ event.timestamp|date:'c' }}" style="font-weight:bold">{{ event.timestamp }}</time>
<time datetime="{{ event.date|date:'c' }}" style="font-weight:bold">{{ event.date }}</time>
{% if event.kind == "log_entry" %}
– {{ event.data.author }}
{% if can_edit %}
Expand Down
12 changes: 5 additions & 7 deletions backend/logbook/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def can_view_logbook(request: HttpRequest, instrument: Instrument) -> bool:

class Event(NamedTuple):
kind: Literal["log_entry", "campaign_start"]
timestamp: datetime.date
date: datetime.date
data: Any


Expand All @@ -34,19 +34,17 @@ def view(request: HttpRequest, instrument_uuid: str) -> HttpResponse:
raise Http404
can_edit = can_edit_logbook(request, instru)
events = []
for entry in instru.logentry_set.order_by("-created_at"):
events.append(
Event(kind="log_entry", timestamp=entry.created_at.date(), data=entry)
)
for entry in instru.logentry_set.order_by("-date"):
events.append(Event(kind="log_entry", date=entry.date, data=entry))
for campaign in instru.campaign_set.order_by("-date_range"):
events.append(
Event(
kind="campaign_start",
timestamp=campaign.date_range.lower,
date=campaign.date_range.lower,
data=campaign,
)
)
events.sort(key=attrgetter("timestamp"), reverse=True)
events.sort(key=attrgetter("date"), reverse=True)
return render(
request,
"logbook/view.html",
Expand Down

0 comments on commit 9395dd5

Please sign in to comment.