-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #667 from Nabla-NTNU/events_subscription
reviewed at meeting
- Loading branch information
Showing
24 changed files
with
959 additions
and
455 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
from django.contrib import admin | ||
|
||
# Register your models here. | ||
from .models import Mailfeed, Subscription | ||
|
||
|
||
class SubscriptionAdmin(admin.ModelAdmin): | ||
class Meta: | ||
verbose_name = "Subscription" | ||
verbose_name_plural = "Subscriptions" | ||
|
||
def short_description(self, com): | ||
return (com.story[:23] + "...") if len(com.story) > 25 else com.story | ||
|
||
def full_user_name(self, com): | ||
return com.user.get_full_name() | ||
|
||
list_display = ("mailfeed", "email", "uuid", "created") | ||
list_select_related = [ | ||
"mailfeed", | ||
] | ||
ordering = ["-mailfeed"] | ||
list_filter = ["mailfeed", "email"] | ||
|
||
|
||
admin.site.register(Subscription, SubscriptionAdmin) | ||
admin.site.register(Mailfeed) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
from django.apps import AppConfig | ||
|
||
|
||
class MailfeedConfig(AppConfig): | ||
name = "nablapps.mailfeed" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
from django import forms | ||
|
||
|
||
class MailFeedForm(forms.Form): | ||
name_field = forms.CharField(required=True) | ||
|
||
def get_name(self) -> str: | ||
cd = self.cleaned_data | ||
name = cd["name_field"] | ||
return name | ||
|
||
|
||
class SubscribeForm(forms.Form): | ||
email_field = forms.EmailField(widget=forms.EmailInput) | ||
|
||
def get_email(self) -> str: | ||
cd = self.cleaned_data | ||
email = cd["email_field"] | ||
return email | ||
|
||
|
||
class UnsubscribeForm(forms.Form): | ||
checkbox_field = forms.BooleanField() | ||
|
||
def get_result(self) -> bool: | ||
cd = self.cleaned_data | ||
result = cd["checkbox_field"] | ||
return result | ||
|
||
|
||
class EmailForm(forms.Form): | ||
subject_field = forms.CharField(max_length=80) | ||
content_field = forms.CharField(required=True, widget=forms.Textarea) | ||
|
||
def get_subject(self) -> str: | ||
cd = self.cleaned_data | ||
subject = cd["subject_field"] | ||
return subject | ||
|
||
def get_content(self) -> str: | ||
cd = self.cleaned_data | ||
content = cd["content_field"] | ||
return content |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
# Generated by Django 3.2.22 on 2024-01-08 23:34 | ||
|
||
import django.db.models.deletion | ||
from django.db import migrations, models | ||
|
||
|
||
class Migration(migrations.Migration): | ||
initial = True | ||
|
||
dependencies = [] | ||
|
||
operations = [ | ||
migrations.CreateModel( | ||
name="MailFeed", | ||
fields=[ | ||
( | ||
"id", | ||
models.AutoField( | ||
auto_created=True, | ||
primary_key=True, | ||
serialize=False, | ||
verbose_name="ID", | ||
), | ||
), | ||
( | ||
"created", | ||
models.DateTimeField(auto_created=True, verbose_name="Opprettet"), | ||
), | ||
("name", models.CharField(max_length=40)), | ||
], | ||
), | ||
migrations.CreateModel( | ||
name="Subscription", | ||
fields=[ | ||
( | ||
"id", | ||
models.AutoField( | ||
auto_created=True, | ||
primary_key=True, | ||
serialize=False, | ||
verbose_name="ID", | ||
), | ||
), | ||
( | ||
"created", | ||
models.DateTimeField(auto_created=True, verbose_name="Opprettet"), | ||
), | ||
("email", models.EmailField(max_length=254)), | ||
( | ||
"mailfeed", | ||
models.ForeignKey( | ||
on_delete=django.db.models.deletion.CASCADE, | ||
to="mailfeed.mailfeed", | ||
), | ||
), | ||
], | ||
), | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# Generated by Django 3.2.22 on 2024-01-09 16:53 | ||
|
||
from django.db import migrations, models | ||
|
||
|
||
class Migration(migrations.Migration): | ||
dependencies = [ | ||
("mailfeed", "0001_initial"), | ||
] | ||
|
||
operations = [ | ||
migrations.AlterField( | ||
model_name="mailfeed", | ||
name="created", | ||
field=models.DateTimeField(auto_now=True, verbose_name="Opprettet"), | ||
), | ||
migrations.AlterField( | ||
model_name="subscription", | ||
name="created", | ||
field=models.DateTimeField(auto_now=True, verbose_name="Opprettet"), | ||
), | ||
] |
16 changes: 16 additions & 0 deletions
16
nablapps/mailfeed/migrations/0003_alter_mailfeed_options.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# Generated by Django 3.2.22 on 2024-01-09 18:35 | ||
|
||
from django.db import migrations | ||
|
||
|
||
class Migration(migrations.Migration): | ||
dependencies = [ | ||
("mailfeed", "0002_auto_20240109_1653"), | ||
] | ||
|
||
operations = [ | ||
migrations.AlterModelOptions( | ||
name="mailfeed", | ||
options={"permissions": [("generate_mailfeeds", "can generate mailfeeds")]}, | ||
), | ||
] |
18 changes: 18 additions & 0 deletions
18
nablapps/mailfeed/migrations/0004_subscription_email_hash.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
# Generated by Django 3.2.23 on 2024-01-10 16:49 | ||
|
||
from django.db import migrations, models | ||
|
||
|
||
class Migration(migrations.Migration): | ||
dependencies = [ | ||
("mailfeed", "0003_alter_mailfeed_options"), | ||
] | ||
|
||
operations = [ | ||
migrations.AddField( | ||
model_name="subscription", | ||
name="email_hash", | ||
field=models.CharField(default="asdf", max_length=100), | ||
preserve_default=False, | ||
), | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# Generated by Django 3.2.23 on 2024-01-10 17:25 | ||
|
||
from django.db import migrations, models | ||
|
||
|
||
class Migration(migrations.Migration): | ||
dependencies = [ | ||
("mailfeed", "0004_subscription_email_hash"), | ||
] | ||
|
||
operations = [ | ||
migrations.RemoveField( | ||
model_name="subscription", | ||
name="email_hash", | ||
), | ||
migrations.AddField( | ||
model_name="subscription", | ||
name="uuid", | ||
field=models.CharField(default=23, max_length=150), | ||
preserve_default=False, | ||
), | ||
] |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
from uuid import uuid4 | ||
|
||
from django.db import models | ||
|
||
|
||
class Mailfeed(models.Model): | ||
name = models.CharField(max_length=40, blank=False, null=False) | ||
created = models.DateTimeField(auto_now=True, verbose_name="Opprettet") | ||
|
||
def get_email_list(self) -> list[str]: | ||
subscription_list = Subscription.objects.filter(mailfeed=self) | ||
email_list = [sub.email for sub in subscription_list] | ||
return email_list | ||
|
||
class Meta: | ||
permissions = [ | ||
("generate_mailfeeds", "can generate mailfeeds"), | ||
] | ||
|
||
def __str__(self) -> str: | ||
return self.name | ||
|
||
|
||
class Subscription(models.Model): | ||
mailfeed = models.ForeignKey(Mailfeed, on_delete=models.CASCADE) | ||
email = models.EmailField(blank=False, null=False) | ||
uuid = models.CharField(max_length=150) | ||
created = models.DateTimeField(auto_now=True, verbose_name="Opprettet") | ||
|
||
def save(self, *args, **kwargs): | ||
self.uuid = uuid4() | ||
super(Subscription, self).save(*args, **kwargs) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
{% extends "base.html" %} | ||
|
||
{% block content %} | ||
<h1>Opprett en mailfeed</h1> | ||
|
||
<a href="{% url 'mailfeed-list' %}" class="btn btn-outline-primary">Tilbake</a> | ||
<p> | ||
<br> | ||
</p> | ||
<form method="POST"> | ||
{% csrf_token %} | ||
<h4>Navn:</h4> | ||
{{ mailfeed_form.name_field }} | ||
<br> | ||
<button class="btn btn-outline-primary" type="submit">send</button> | ||
</form> | ||
|
||
{% endblock %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
{% extends "base.html" %} | ||
|
||
{% block content %} | ||
<h1>Ugyldig mailadresse</h1> | ||
<p> | ||
<br> | ||
</p> | ||
<a href="{% url 'subscribe-mailfeed' mailfeed.id %}" class="btn btn-outline-primary">Prøv igjen</a> | ||
{% endblock %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
{% extends "base.html" %} | ||
|
||
{% block content %} | ||
|
||
<style> | ||
.qr-ticket-container { | ||
display: grid; | ||
grid-template-columns: 1fr 1fr; | ||
column-gap: 50px; | ||
} | ||
|
||
.qr-email { | ||
text-align: left; | ||
} | ||
|
||
.qr-registered { | ||
text-align: right; | ||
} | ||
</style> | ||
|
||
<h1>Administrerer {{ mailfeed.name }}</h1> | ||
<a href="{% url 'mailfeed-list' %}" class="btn btn-outline-primary">Tilbake til listen over MailFeedene</a> | ||
<a href="{% url 'subscribe-mailfeed' mailfeed.id %}" class="btn btn-outline-primary">Abonner på denne feeden</a> | ||
<p> | ||
<br> | ||
</p> | ||
<h4>Generer og send ny mail:</h4> | ||
<p> | ||
Når du trykker "send" sendes det ut en mail til alle på listen | ||
</p> | ||
<form method="POST"> | ||
{% csrf_token %} | ||
<b>Emne</b> | ||
<br> | ||
{{ email_form.subject_field }} | ||
<br> | ||
<b>Innhold</b> | ||
<br> | ||
{{ email_form.content_field }} | ||
<br> | ||
<button class="btn btn-outline-primary" type="submit">send</button> | ||
</form> | ||
|
||
<h4>Abonnenter</h4> | ||
<div class="qr-ticket-container"> | ||
<p class="qr-email"><b>Epost:</b></p> | ||
</div> | ||
{% for email in email_list %} | ||
<div class="qr-ticket-container"> | ||
<p class="qr-email">{{ email }}</p> | ||
</div> | ||
{% endfor %} | ||
|
||
|
||
{% endblock %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
{% extends "base.html" %} | ||
|
||
{% block content %} | ||
<h1>Administrer Mailfeeder</h1> | ||
|
||
<a href="{% url 'create-mailfeed' %}" class="btn btn-outline-primary">Opprett ny Mailfeed</a> | ||
|
||
<h4>Mailfeeder</h4> | ||
<ul class="list-group"> | ||
{% for mailfeed in object_list %} | ||
<li class="list-group-item"><a href="{% url 'mailfeed-detail' mailfeed.id %}">{{ mailfeed.name }}</a></li> | ||
{% endfor %} | ||
</ul> | ||
|
||
{% endblock %} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
{% extends "base.html" %} | ||
|
||
{% block content %} | ||
<h1>{{ msg }}</h1> | ||
|
||
|
||
{% endblock %} |
16 changes: 16 additions & 0 deletions
16
nablapps/mailfeed/templates/mailfeed/subscribe_mailfeed.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
{% extends "base.html" %} | ||
|
||
{% block content %} | ||
<h1>Abonner på {{ mailfeed.name }}</h1> | ||
|
||
|
||
<form method="POST"> | ||
{% csrf_token %} | ||
<h4>Email</h4> | ||
{{ subscribe_form.email_field }} | ||
<br> | ||
<br> | ||
<button class="btn btn-outline-primary" type="submit">send</button> | ||
</form> | ||
|
||
{% endblock %} |
15 changes: 15 additions & 0 deletions
15
nablapps/mailfeed/templates/mailfeed/unsubscribe_mailfeed.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
{% extends "base.html" %} | ||
|
||
{% block content %} | ||
<h1>Slutt å abonner på {{ mailfeed.name }}</h1> | ||
|
||
|
||
<form method="POST"> | ||
{% csrf_token %} | ||
{{ unsubscribe_form.checkbox_field }} | ||
<br> | ||
<br> | ||
<button class="btn btn-outline-primary" type="submit">send</button> | ||
</form> | ||
|
||
{% endblock %} |
Oops, something went wrong.