Skip to content

Commit dd1d66d

Browse files
committed
(add) model to follow Shift notifications
1 parent 4af5673 commit dd1d66d

File tree

3 files changed

+57
-0
lines changed

3 files changed

+57
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Generated by Django 3.2.25 on 2024-07-07 20:33
2+
3+
from django.conf import settings
4+
from django.db import migrations, models
5+
import django.db.models.deletion
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
dependencies = [
11+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
12+
('shifts', '0056_shiftaccountentry_is_solidarity_used'),
13+
]
14+
15+
operations = [
16+
migrations.CreateModel(
17+
name='ShiftNotification',
18+
fields=[
19+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
20+
('notification_timedelta', models.DurationField()),
21+
('shift_to_be_notified_about', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='shifts.shift')),
22+
('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='shift_notification_entry', to=settings.AUTH_USER_MODEL)),
23+
],
24+
),
25+
migrations.AddConstraint(
26+
model_name='shiftnotification',
27+
constraint=models.UniqueConstraint(fields=('user', 'shift_to_be_notified_about'), name='user_shift_constraint'),
28+
),
29+
]

tapir/shifts/models.py

+16
Original file line numberDiff line numberDiff line change
@@ -1115,3 +1115,19 @@ class SolidarityShift(models.Model):
11151115
is_used_up = models.BooleanField(default=False)
11161116
date_gifted = models.DateField(auto_now_add=True)
11171117
date_used = models.DateField(null=True)
1118+
1119+
1120+
class ShiftNotification(models.Model):
1121+
class Meta:
1122+
constraints = [
1123+
models.UniqueConstraint(
1124+
fields=["user", "shift_to_be_notified_about"],
1125+
name="user_shift_constraint",
1126+
)
1127+
]
1128+
1129+
user = models.ForeignKey(
1130+
TapirUser, related_name="shift_notification_entry", on_delete=models.CASCADE
1131+
)
1132+
shift_to_be_notified_about = models.ForeignKey(Shift, on_delete=models.CASCADE)
1133+
notification_timedelta = models.DurationField()

tapir/shifts/templates/shifts/shift_detail.html

+12
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,18 @@ <h5 class="d-flex justify-content-between align-items-center">
2828
<span id="shift_card_title">{% translate 'Shift' %}: {{ shift.get_display_name }}</span>
2929
{% if perms.shifts.manage %}
3030
<span>
31+
32+
{% if True %}
33+
<a class="{% tapir_button_link %}"
34+
href="{% url 'shifts:shift_detail_printable' shift.pk %}">
35+
<span class="material-icons">visibility_off</span>{% translate 'Unwatch' %}
36+
</a>
37+
{% else %}
38+
<a class="{% tapir_button_link %}"
39+
href="{% url 'shifts:shift_detail_printable' shift.pk %}">
40+
<span class="material-icons">visibility</span>{% translate 'Watch' %}
41+
</a>
42+
{% endif %}
3143
<a class="{% tapir_button_link %}"
3244
href="{% url 'shifts:shift_detail_printable' shift.pk %}">
3345
<span class="material-icons">print</span>{% translate 'Get printable version' %}

0 commit comments

Comments
 (0)