This commit is contained in:
holger.trampe 2020-01-05 13:31:08 +01:00
parent 94abc6b481
commit 686a8fe6f1
38 changed files with 919 additions and 124 deletions

View File

@ -17,7 +17,7 @@
<input class="form-control" id="tableSearch" size="50" type="text" placeholder="Suche in Tabelle..."> <input class="form-control" id="tableSearch" size="50" type="text" placeholder="Suche in Tabelle...">
</div> </div>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-hover"> <table class="table table-hover" id="areas_maintable">
<thead> <thead>
<tr> <tr>
<th scope="col">Name</th> <th scope="col">Name</th>
@ -57,11 +57,16 @@
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script> <script>
$(document).ready(function(){ $(document).ready(function(){
/*$('#areas_maintable').DataTable();*/
$("#tableSearch").on("keyup", function() { $("#tableSearch").on("keyup", function() {
var value = $(this).val().toLowerCase(); var value = $(this).val().toLowerCase();
$("#tableresults tr").filter(function() { $("#tableresults tr").filter(function() {
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1) $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
}); });
}); });

View File

@ -40,7 +40,7 @@ INSTALLED_APPS = [
'standards.apps.StandardsConfig', 'standards.apps.StandardsConfig',
'news.apps.NewsConfig', 'news.apps.NewsConfig',
'crispy_forms', 'crispy_forms',
'colorful', 'colorful',
'ckeditor', 'ckeditor',
'django_summernote', 'django_summernote',
'ckeditor_uploader', 'ckeditor_uploader',
@ -50,7 +50,7 @@ INSTALLED_APPS = [
'django.contrib.sessions', 'django.contrib.sessions',
'django.contrib.messages', 'django.contrib.messages',
'django.contrib.staticfiles', 'django.contrib.staticfiles',
'bootstrap_datepicker_plus', 'bootstrap_datepicker_plus'
] ]
MIDDLEWARE = [ MIDDLEWARE = [

View File

@ -2,25 +2,27 @@ from django.db import models
from django.contrib.auth.models import User from django.contrib.auth.models import User
from users.models import Agency from users.models import Agency
from django.urls import reverse from django.urls import reverse
import datetime from datetime import datetime, timedelta
#from ckeditor_uploader.fields import RichTextUploadingField #from ckeditor_uploader.fields import RichTextUploadingField
from bootstrap_datepicker_plus import DatePickerInput from bootstrap_datepicker_plus import DatePickerInput
from django.utils import timezone
class News(models.Model): class News(models.Model):
agency = models.ForeignKey(Agency, on_delete=models.CASCADE) agency = models.ForeignKey(Agency, on_delete=models.CASCADE)
name = models.CharField(max_length=200, blank=False, default="") name = models.CharField(max_length=200, blank=False, default="")
#content = RichTextUploadingField(blank=True, verbose_name='Inhalt') #content = RichTextUploadingField(blank=True, verbose_name='Inhalt')
content = models.TextField(blank=True, verbose_name='Inhalt') content = models.TextField(blank=True, verbose_name='Inhalt', default="")
created_by = models.ForeignKey(User, on_delete=models.PROTECT) created_by = models.ForeignKey(User, on_delete=models.PROTECT)
created_date = models.DateTimeField(default=datetime.datetime.now(), blank=True) created_date = models.DateTimeField(default=timezone.now, blank=True)
go_online_on = models.DateTimeField(default=datetime.datetime.now(), blank=True) go_online_on = models.DateTimeField(default=timezone.now, blank=True)
go_offline_on = models.DateTimeField(default=datetime.datetime.now(), blank=True) # Default date plus two weeks
go_offline_on = models.DateTimeField(default=timezone.now()+timedelta(days=14), blank=True)
last_modified_by = models.ForeignKey(User, on_delete=models.PROTECT, related_name='news_mod_by', default=None) last_modified_by = models.ForeignKey(User, on_delete=models.PROTECT, related_name='news_mod_by', default=None)
last_modified_on = models.DateTimeField(default=datetime.datetime.now(), blank=True) last_modified_on = models.DateTimeField(default=timezone.now, blank=True)
def __str__(self): def __str__(self):
return f'{self.name}' return f'{self.name}'

View File

@ -7,7 +7,9 @@
Hier können aktuelle Nachrichten für die Agentur erstellt und verwaltet werden. Hier können aktuelle Nachrichten für die Agentur erstellt und verwaltet werden.
</p> </p>
<div class="row"> <div class="row">
<div class="content-section col-4">
<a class="btn btn-primary" href="{% url 'news-add' %} ">News anlegen</a> <a class="btn btn-primary" href="{% url 'news-add' %} ">News anlegen</a>
</div>
</div> </div>
<hr> <hr>
<div class="row"> <div class="row">

View File

@ -3,8 +3,7 @@ from django.forms import ModelForm
from .models import Standards from .models import Standards
from areas.models import Areas from areas.models import Areas
from tasks.models import Tasks from tasks.models import Tasks
#from ckeditor.widgets import CKEditorWidget from django_summernote.widgets import SummernoteInplaceWidget
@ -12,6 +11,9 @@ class StandardAddStandard(forms.ModelForm):
class Meta: class Meta:
model =Standards model =Standards
widgets = {
'content': SummernoteInplaceWidget(),
}
labels = { labels = {
"name" : "Titel", "name" : "Titel",
"area" : "Übergeordneter Bereich", "area" : "Übergeordneter Bereich",
@ -46,11 +48,12 @@ class StandardAddStandard(forms.ModelForm):
class StandardAddStandardEditor(forms.ModelForm): class StandardAddStandardEditor(forms.ModelForm):
#content = forms.CharField(widget=CKEditorWidget())
class Meta: class Meta:
model = Standards model = Standards
widgets = {
'content': SummernoteInplaceWidget(),
}
labels = { labels = {
"content" : "Inhalt" "content" : "Inhalt"
} }
@ -60,6 +63,9 @@ class StandardUpdateStandard(forms.ModelForm):
class Meta: class Meta:
model =Standards model =Standards
widgets = {
'content': SummernoteInplaceWidget()
}
labels = { labels = {
"name" : "Titel", "name" : "Titel",
"area" : "Übergeordneter Bereich", "area" : "Übergeordneter Bereich",
@ -96,11 +102,12 @@ class StandardUpdateStandard(forms.ModelForm):
class StandardUpdateStandardEditor(forms.ModelForm): class StandardUpdateStandardEditor(forms.ModelForm):
#content = forms.CharField(widget=CKEditorWidget())
class Meta: class Meta:
model = Standards model = Standards
widgets = {
'content': SummernoteInplaceWidget()
}
labels = { labels = {
"content" : "Inhalt" "content" : "Inhalt"
} }

View File

@ -15,16 +15,17 @@ class Standards(models.Model):
task = models.ForeignKey(Tasks, on_delete=models.CASCADE) task = models.ForeignKey(Tasks, on_delete=models.CASCADE)
name = models.CharField(max_length=200, blank=False, default="") name = models.CharField(max_length=200, blank=False, default="")
#content = RichTextUploadingField(blank=True, verbose_name='Inhalt') #content = RichTextUploadingField(blank=True, verbose_name='Inhalt')
content = models.TextField(blank=True, verbose_name='Inhalt') content = models.TextField(blank=True, verbose_name='Inhalt', default="")
#content = models.CharField(max_length=200000, blank=True, verbose_name='Inhalt')
created_standard_by = models.ForeignKey(User, on_delete=models.PROTECT) created_standard_by = models.ForeignKey(User, on_delete=models.PROTECT)
created_standard_date = models.DateTimeField(default=datetime.datetime.now(), blank=True) created_standard_date = models.DateTimeField(default=timezone.now, blank=True)
published_by = models.ForeignKey(User, on_delete=models.PROTECT, related_name='user_published_standard', default=None) published_by = models.ForeignKey(User, on_delete=models.PROTECT, related_name='user_published_standard', default=None)
published_on = models.DateTimeField(default=datetime.datetime.now(), blank=True) published_on = models.DateTimeField(default=timezone.now, blank=True)
last_modified_by = models.ForeignKey(User, on_delete=models.PROTECT, related_name='user_modified_standard', default=None) last_modified_by = models.ForeignKey(User, on_delete=models.PROTECT, related_name='user_modified_standard', default=None)
last_modified_on = models.DateTimeField(default=datetime.datetime.now(), blank=True) last_modified_on = models.DateTimeField(default=timezone.now, blank=True)
public = models.BooleanField(default=False) public = models.BooleanField(default=False)

View File

@ -48,19 +48,7 @@
</tr> </tr>
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</table> </table>
</div> </div>
</div> </div>
{% endblock content %} {% endblock content %}

View File

@ -29,10 +29,21 @@ $("#id_area").change(function () {
} }
}); });
}); });
$(document).ready(function() { $(document).ready(function() {
$('#id_content').summernote({ $('#id_content').summernote({
height: 400 height: 400
}); });
}); });
</script> </script>
{% if not perms.users.standard_management %}
<script type="text/javascript">
$("#div_id_public").hide();
</script>
{% endif %}
{% endblock content %} {% endblock content %}

View File

@ -25,7 +25,12 @@
{% endfor %} {% endfor %}
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" id="userown" data-toggle="tab" href="#t_userown" role="tab" aria-controls="t_userown" aria-selected="false">Eigene Standards</a> <a class="nav-link" id="userown" data-toggle="tab" href="#t_userown" role="tab" aria-controls="t_userown" aria-selected="false">Eigene Standards</a>
</li> </li>
{% if perms.users.standard_management %}
<li class="nav-item">
<a class="nav-link" id="agencys" data-toggle="tab" href="#t_agencys" role="tab" aria-controls="t_agencys" aria-selected="false">Unveröffentlichte Standards</a>
</li>
{% endif %}
</ul> </ul>
</div> </div>
<div class="col"> <div class="col">
@ -117,6 +122,59 @@
</div> </div>
</div> </div>
<div class="tab-pane fade" id="t_agencys" role="tabpanel" aria-labelledby="userown">
<h4 class="mt-4 mb-4">Unveröffentlichte Standards</h4>
<div class="form-group mb-2">
<input class="form-control" id="tableSearch_s" size="20" type="text" placeholder="Suche in Tabelle...">
</div>
<div class="table-responsive">
<table class="table table-hover">
<thead>
<tr>
<th scope="col">Titel</th>
<th scope="col">Erstellt am</th>
<th scope="col">Geändert von</th>
<th scope="col">Geändert am</th>
<th scope="col">Öffentlichkeitsstatus</th>
<th scope="col">&nbsp;</th>
</tr>
</thead>
<tbody id="tableresults_s">
{% for standard in unpubstandards_of_user %}
<tr>
<td><a href="{% url 'standard-single' standard.pk %}">{{standard.name}}</a></td>
<td>{{standard.created_standard_date|date:"d.m.Y, H:i"}}</td>
<td>{{standard.last_modified_by.first_name}} {{standard.last_modified_by.last_name}}</td>
<td>{{standard.last_modified_on|date:"d.m.Y, H:i"}}</td>
<td>{{standard.public|yesno:"Öffentlich,Nicht öffentlich"}}</td>
<td>
<div class="dropdown no-arrow">
<a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-400"></i>
</a>
<div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink">
{% if perms.users.standard_management %}
{% if standard.public %}
<a class="dropdown-item" href="{% url 'standard-status' standard.pk %}">Veröffentlichung aufheben</a>
{% else %}
<a class="dropdown-item" href="{% url 'standard-status' standard.pk %}">Veröffentlichen</a>
{% endif %}
{% endif %}
{% if standard.created_standard_by == request.user or perms.users.standard_management %}
<a class="dropdown-item" href="{% url 'standard-update' standard.pk %}">Bearbeiten</a>
{% endif %}
<div class="dropdown-divider"></div>
<a class="dropdown-item text-danger" href="{% url 'standard-delete' standard.pk %}" >Löschen</a>
</div>
</div>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -129,8 +187,15 @@
$("#tableresults tr").filter(function() { $("#tableresults tr").filter(function() {
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1) $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
}); });
}); });
})
$("#tableSearch_s").on("keyup", function() {
var value = $(this).val().toLowerCase();
$("#tableresults_s tr").filter(function() {
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
});
});
})
$('#area_tabs a').on('click', function (e) { $('#area_tabs a').on('click', function (e) {

View File

@ -38,10 +38,12 @@ $("#id_area").change(function () {
} }
}); });
}); });
$(document).ready(function() { $(document).ready(function() {
$('#id_content').summernote({ $('#id_content').summernote({
height: 400 height: 400
}); });
}); });
</script> </script>
{% endblock content %} {% endblock content %}

View File

@ -23,11 +23,11 @@ class StandardsManagement(LoginRequiredMixin, ListView):
areas = Areas.objects.filter(agency__pk=self.request.user.profile.agency.pk) areas = Areas.objects.filter(agency__pk=self.request.user.profile.agency.pk)
standards_of_user = Standards.objects.filter(agency__pk=self.request.user.profile.agency.pk, created_standard_by=self.request.user.pk) standards_of_user = Standards.objects.filter(agency__pk=self.request.user.profile.agency.pk, created_standard_by=self.request.user.pk)
standards_of_agency = Standards.objects.filter(agency__pk=self.request.user.profile.agency.pk) standards_of_agency = Standards.objects.filter(agency__pk=self.request.user.profile.agency.pk)
unpubstandards_of_user = Standards.objects.filter(agency__pk=self.request.user.profile.agency.pk, public=False)
tasks = Tasks.objects.filter(agency__pk=self.request.user.profile.agency.pk) tasks = Tasks.objects.filter(agency__pk=self.request.user.profile.agency.pk)
context.update({'active_link' : 'standards', 'tasks': tasks, 'standards_of_agency' : standards_of_agency, 'areas' : areas, 'standards_of_user' : standards_of_user}) context.update({'active_link' : 'standards', 'tasks': tasks, 'unpubstandards_of_user' : unpubstandards_of_user, 'standards_of_agency' : standards_of_agency, 'areas' : areas, 'standards_of_user' : standards_of_user})
return context return context
@login_required @login_required
def StandardAdd(request): def StandardAdd(request):
if request.method == 'POST': if request.method == 'POST':

View File

@ -32,6 +32,12 @@
<link href="https://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.12/summernote.css" rel="stylesheet"> <link href="https://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.12/summernote.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.12/summernote.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.12/summernote.js"></script>
<!-- TABLE SORT -->
<!--<link rel="stylesheet" href="https://cdn.datatables.net/1.10.20/css/jquery.dataTables.min.css">-->
</head> </head>
<body id="page-top"> <body id="page-top">
<!-- Page Wrapper --> <!-- Page Wrapper -->
@ -187,7 +193,11 @@
<button class="rounded-circle border-0" id="sidebarToggle"></button> <button class="rounded-circle border-0" id="sidebarToggle"></button>
</div> </div>
<div style="bottom: 10px; position: absolute;" class="sidebar-heading"> <div style="bottom: 10px; position: absolute;" class="sidebar-heading">
Version 0.7.2 Version 0.7.3
</div>
<div style="bottom: 40px; position: absolute;" class="sidebar-heading">
<a href="{% url 'datenschutzda' %}">Datenschutz</a><br />
<a href="{% url 'impressumda' %}">Impressum</a>
</div> </div>
</ul> </ul>
<!-- End of Sidebar --> <!-- End of Sidebar -->
@ -321,6 +331,9 @@
<!-- CUSTOM FONT --> <!-- CUSTOM FONT -->
<link href="{% static 'users/css/custom.css' %}" rel="stylesheet"> <link href="{% static 'users/css/custom.css' %}" rel="stylesheet">
<!-- TABLE SORT -->
<!--<script src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>-->
<!-- Page level plugins --> <!-- Page level plugins -->
<!--<script src="vendor/chart.js/Chart.min.js"></script>--> <!--<script src="vendor/chart.js/Chart.min.js"></script>-->

View File

@ -37,8 +37,6 @@
<img width="100%" src="{{ request.user.profile.agency.get_photo_url }}"> <img width="100%" src="{{ request.user.profile.agency.get_photo_url }}">
</div> </div>
</div> </div>
<div class="card d-block mb-3" style="width: 96%"> <div class="card d-block mb-3" style="width: 96%">
<div class="card-body"> <div class="card-body">
<h5 class="card-title">Neueste Standards</h5> <h5 class="card-title">Neueste Standards</h5>

View File

@ -0,0 +1,9 @@
{% extends "users/base.html" %}
{% block content %}
<div class="content-section col-md-5">
<h1>Datenschutz</h1>
{% block datenschutz_content %}
{% include "users/datenschutz_content.html" %}
{% endblock %}
</div>
{% endblock %}

View File

@ -0,0 +1 @@
<p>TODO Datenschutz Content</p>

View File

@ -0,0 +1,9 @@
{% extends "users/publicbase.html" %}
{% block content %}
<div class="content-section col-md-5">
<h1>Datenschutz</h1>
{% block datenschutz_content %}
{% include "users/datenschutz_content.html" %}
{% endblock %}
</div>
{% endblock content %}

View File

@ -0,0 +1,9 @@
{% extends "users/base.html" %}
{% block content %}
<div class="content-section col-md-5">
<h1>Impressum</h1>
{% block impressum_content %}
{% include "users/impressum_content.html" %}
{% endblock %}
</div>
{% endblock content %}

View File

@ -0,0 +1 @@
<p>TODO Impressum Content</p>

View File

@ -0,0 +1,9 @@
{% extends "users/publicbase.html" %}
{% block content %}
<div class="content-section col-md-5">
<h1>Impressum</h1>
{% block impressum_content %}
{% include "users/impressum_content.html" %}
{% endblock %}
</div>
{% endblock content %}

View File

@ -1,29 +1,184 @@
{% load i18n %}{% autoescape off %} <!doctype html>
<html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head> <head>
<link href='https://fonts.googleapis.com/css?family=Roboto&display=swap' rel='stylesheet' type='text/css'> <title> </title>
<style> <!--[if !mso]><!-- -->
html {font-family: 'Roboto' !important;}html h6 {font-family: 'Roboto' !important;font-size: 1.0em;}html h5 {font-family: 'Roboto' !important;font-size: 1.1em;}html h4 {font-family: 'Roboto' !important;font-size: 1.3em;}html h3 {font-family: 'Roboto' !important;font-size: 1.5em;}html h2 {font-family: 'Roboto' !important;font-size: 1.7em;}html h1 {font-family: 'Roboto' !important;font-size: 2em;}body p{font-family: 'Roboto' !important;font-size: 0.9; color: #000000;} <meta http-equiv="X-UA-Compatible" content="IE=edge">
</style> <!--<![endif]-->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type="text/css">
#outlook a {
padding: 0;
}
body {
margin: 0;
padding: 0;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
table,
td {
border-collapse: collapse;
mso-table-lspace: 0pt;
mso-table-rspace: 0pt;
}
img {
border: 0;
height: auto;
line-height: 100%;
outline: none;
text-decoration: none;
-ms-interpolation-mode: bicubic;
}
p {
display: block;
margin: 13px 0;
}
</style>
<!--[if mso]>
<xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
<o:PixelsPerInch>96</o:PixelsPerInch>
</o:OfficeDocumentSettings>
</xml>
<![endif]-->
<!--[if lte mso 11]>
<style type="text/css">
.mj-outlook-group-fix { width:100% !important; }
</style>
<![endif]-->
<!--[if !mso]><!-->
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700" rel="stylesheet" type="text/css">
<style type="text/css">
@import url(https://fonts.googleapis.com/css?family=Roboto:300,400,500,700);
</style>
<!--<![endif]-->
<style type="text/css">
@media only screen and (min-width:480px) {
.mj-column-per-100 {
width: 100% !important;
max-width: 100%;
}
}
</style>
<style type="text/css">
</style>
</head> </head>
<body> <body>
<h3>Digitale Agentur | Account</h3> <div style="">
<hr> <!--[if mso | IE]>
<p> <table
Hallo {{username}},<br /><br /> align="center" border="0" cellpadding="0" cellspacing="0" class="" style="width:600px;" width="600"
für Sie wurde ein Account in der Agentur <b>{{user.profile.agency.name}}</b> erstellt. Bitte gehen Sie auf folgenden Link, um ein Passwort zu erstellen: >
<p> <tr>
<a href="https://digitale-agentur.com/password-reset">https://digitale-agentur.com/password-reset</a> <td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;">
</p> <![endif]-->
Weitere Informationen erhalten Sie von Ihrem Agenturleiter. <div style="margin:0px auto;max-width:600px;">
</p> <table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="width:100%;">
<p> <tbody>
Vielen Dank, dass Sie die Plattform <b>Digitale Agentur</b> nutzen! <tr>
<br /><br /> <td style="direction:ltr;font-size:0px;padding:20px 0;text-align:center;">
Mit freundlichen Grüßen <!--[if mso | IE]>
<br /><br /> <table role="presentation" border="0" cellpadding="0" cellspacing="0">
Ihr Team von Digitale Agentur
</p> <tr>
<td
class="" style="vertical-align:top;width:600px;"
>
<![endif]-->
<div class="mj-column-per-100 mj-outlook-group-fix" style="font-size:0px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:100%;">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top;" width="100%">
<tr>
<td style="font-size:0px;padding:10px 25px;word-break:break-word;">
<p style="border-top:solid 4px #5a5c69;font-size:1;margin:0px auto;width:100%;"> </p>
<!--[if mso | IE]>
<table
align="center" border="0" cellpadding="0" cellspacing="0" style="border-top:solid 4px #5a5c69;font-size:1;margin:0px auto;width:550px;" role="presentation" width="550px"
>
<tr>
<td style="height:0;line-height:0;">
&nbsp;
</td>
</tr>
</table>
<![endif]-->
</td>
</tr>
<tr>
<td align="left" style="font-size:0px;padding:10px 25px;word-break:break-word;">
<div style="font-family:Roboto;font-size:20px;line-height:1;text-align:left;color:#000000;">
<h2>Digitale Agentur | Account</h2>
</div>
</td>
</tr>
</table>
</div>
<!--[if mso | IE]>
</td>
<td
class="" style="vertical-align:top;width:600px;"
>
<![endif]-->
<div class="mj-column-per-100 mj-outlook-group-fix" style="font-size:0px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:100%;">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top;" width="100%">
<tr>
<td align="left" style="font-size:0px;padding:10px 25px;word-break:break-word;">
<div style="font-family:Roboto;font-size:18px;line-height:1;text-align:left;color:#000000;">
<p>Hallo {{username}},</p>
<p>für Sie wurde ein Account in der Agentur <b>{{user.profile.agency.name}}</b> erstellt. Bitte gehen Sie auf folgenden Link, um ein Passwort zu erstellen:</p>
<p><a href="https://digitale-agentur.com/password-reset">https://digitale-agentur.com/password-reset</a></p>
<p>Weitere Informationen erhalten Sie von Ihrem Agenturleiter. Vielen Dank, dass Sie die Plattform <b>Digitale Agentur</b> nutzen!</p>
<p>Mit freundlichen Grüßen</p>
<p>Ihr Team von Digitale Agentur</p>
</div>
</td>
</tr>
<tr>
<td style="font-size:0px;padding:10px 25px;word-break:break-word;">
<p style="border-top:solid 4px #5a5c69;font-size:1;margin:0px auto;width:100%;"> </p>
<!--[if mso | IE]>
<table
align="center" border="0" cellpadding="0" cellspacing="0" style="border-top:solid 4px #5a5c69;font-size:1;margin:0px auto;width:550px;" role="presentation" width="550px"
>
<tr>
<td style="height:0;line-height:0;">
&nbsp;
</td>
</tr>
</table>
<![endif]-->
</td>
</tr>
</table>
</div>
<!--[if mso | IE]>
</td>
</tr>
</table>
<![endif]-->
</td>
</tr>
</tbody>
</table>
</div>
<!--[if mso | IE]>
</td>
</tr>
</table>
<![endif]-->
</div>
</body> </body>
</html>
{% endautoescape %} </html>

View File

@ -0,0 +1,28 @@
{% load mjml %}
{% mjml %}
<mjml>
<mj-body>
<mj-section>
<mj-column width="100%">
<mj-divider border-color="#5a5c69"></mj-divider>
<mj-text font-size="20px" font-family="Roboto"><h2>Digitale Agentur | Account</h2></mj-text>
</mj-column>
<mj-column width="100%">
<mj-text font-size="18px" font-family="Roboto">
<p>Hallo {{username}},</p>
<p>für Sie wurde ein Account in der Agentur <b>{{user.profile.agency.name}}</b> erstellt. Bitte gehen Sie auf folgenden Link, um ein Passwort zu erstellen:</p>
<p><a href="https://digitale-agentur.com/password-reset">https://digitale-agentur.com/password-reset</a></p>
<p>Weitere Informationen erhalten Sie von Ihrem Agenturleiter. Vielen Dank, dass Sie die Plattform <b>Digitale Agentur</b> nutzen!</p>
<p>Mit freundlichen Grüßen</p>
<p>Ihr Team von Digitale Agentur</p>
</mj-text>
<mj-divider border-color="#5a5c69"></mj-divider>
</mj-column>
</mj-section>
</mj-body>
</mjml>
{% endmjml %}

View File

@ -0,0 +1,29 @@
{% load i18n %}{% autoescape off %}
<html>
<head>
<link href='https://fonts.googleapis.com/css?family=Roboto&display=swap' rel='stylesheet' type='text/css'>
<style>
html {font-family: 'Roboto' !important;}html h6 {font-family: 'Roboto' !important;font-size: 1.0em;}html h5 {font-family: 'Roboto' !important;font-size: 1.1em;}html h4 {font-family: 'Roboto' !important;font-size: 1.3em;}html h3 {font-family: 'Roboto' !important;font-size: 1.5em;}html h2 {font-family: 'Roboto' !important;font-size: 1.7em;}html h1 {font-family: 'Roboto' !important;font-size: 2em;}body p{font-family: 'Roboto' !important;font-size: 0.9; color: #000000;}
</style>
</head>
<body>
<h3>Digitale Agentur | Account</h3>
<hr>
<p>
Hallo {{username}},<br /><br />
für Sie wurde ein Account in der Agentur <b>{{user.profile.agency.name}}</b> erstellt. Bitte gehen Sie auf folgenden Link, um ein Passwort zu erstellen:
<p>
<a href="https://digitale-agentur.com/password-reset">https://digitale-agentur.com/password-reset</a>
</p>
Weitere Informationen erhalten Sie von Ihrem Agenturleiter.
</p>
<p>
Vielen Dank, dass Sie die Plattform <b>Digitale Agentur</b> nutzen!
<br /><br />
Mit freundlichen Grüßen
<br /><br />
Ihr Team von Digitale Agentur
</p>
</body>
</html>
{% endautoescape %}

View File

@ -1,32 +1,187 @@
{% load i18n %}{% autoescape off %} <!doctype html>
<html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head> <head>
<link href='https://fonts.googleapis.com/css?family=Roboto&display=swap' rel='stylesheet' type='text/css'> <title> </title>
<style> <!--[if !mso]><!-- -->
html {font-family: 'Roboto' !important;}html h6 {font-family: 'Roboto' !important;font-size: 1.0em;}html h5 {font-family: 'Roboto' !important;font-size: 1.1em;}html h4 {font-family: 'Roboto' !important;font-size: 1.3em;}html h3 {font-family: 'Roboto' !important;font-size: 1.5em;}html h2 {font-family: 'Roboto' !important;font-size: 1.7em;}html h1 {font-family: 'Roboto' !important;font-size: 2em;}body p{font-family: 'Roboto' !important;font-size: 0.9; color: #000000;} <meta http-equiv="X-UA-Compatible" content="IE=edge">
</style> <!--<![endif]-->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type="text/css">
#outlook a {
padding: 0;
}
body {
margin: 0;
padding: 0;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
table,
td {
border-collapse: collapse;
mso-table-lspace: 0pt;
mso-table-rspace: 0pt;
}
img {
border: 0;
height: auto;
line-height: 100%;
outline: none;
text-decoration: none;
-ms-interpolation-mode: bicubic;
}
p {
display: block;
margin: 13px 0;
}
</style>
<!--[if mso]>
<xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
<o:PixelsPerInch>96</o:PixelsPerInch>
</o:OfficeDocumentSettings>
</xml>
<![endif]-->
<!--[if lte mso 11]>
<style type="text/css">
.mj-outlook-group-fix { width:100% !important; }
</style>
<![endif]-->
<!--[if !mso]><!-->
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700" rel="stylesheet" type="text/css">
<style type="text/css">
@import url(https://fonts.googleapis.com/css?family=Roboto:300,400,500,700);
</style>
<!--<![endif]-->
<style type="text/css">
@media only screen and (min-width:480px) {
.mj-column-per-100 {
width: 100% !important;
max-width: 100%;
}
}
</style>
<style type="text/css">
</style>
</head> </head>
<body> <body>
<h3>Digitale Agentur | Passwort vergessen</h3> <div style="">
<hr> <!--[if mso | IE]>
<p> <table
Hallo {{user.first_name}} {{user.last_name}},<br /><br /> align="center" border="0" cellpadding="0" cellspacing="0" class="" style="width:600px;" width="600"
Sie haben ein neues Passwort für den Zugang ihrer Agentur <b>{{user.profile.agency.name}}</b> angefordert. Bitte gehen Sie auf folgenden Link, um ein Passwort zu erstellen: >
<p> <tr>
{% block reset_link %} <td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;">
<h4><a href="{{ protocol }}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %}">{{ protocol }}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %}</a></h4> <![endif]-->
{% endblock %} <div style="margin:0px auto;max-width:600px;">
<h4>Ihr Benutzername: {{ user.get_username }}</h4> <table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="width:100%;">
</p> <tbody>
Sollten Sie kein Passwort angefordert haben, ignorieren Sie diese E-Mail. <tr>
</p> <td style="direction:ltr;font-size:0px;padding:20px 0;text-align:center;">
<p> <!--[if mso | IE]>
Vielen Dank, dass Sie die Plattform <b>Digitale Agentur</b> nutzen! <table role="presentation" border="0" cellpadding="0" cellspacing="0">
<br /><br />
Mit freundlichen Grüßen <tr>
<br /><br />
Ihr Team von Digitale Agentur <td
</p> class="" style="vertical-align:top;width:600px;"
>
<![endif]-->
<div class="mj-column-per-100 mj-outlook-group-fix" style="font-size:0px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:100%;">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top;" width="100%">
<tr>
<td style="font-size:0px;padding:10px 25px;word-break:break-word;">
<p style="border-top:solid 4px #5a5c69;font-size:1;margin:0px auto;width:100%;"> </p>
<!--[if mso | IE]>
<table
align="center" border="0" cellpadding="0" cellspacing="0" style="border-top:solid 4px #5a5c69;font-size:1;margin:0px auto;width:550px;" role="presentation" width="550px"
>
<tr>
<td style="height:0;line-height:0;">
&nbsp;
</td>
</tr>
</table>
<![endif]-->
</td>
</tr>
<tr>
<td align="left" style="font-size:0px;padding:10px 25px;word-break:break-word;">
<div style="font-family:Roboto;font-size:20px;line-height:1;text-align:left;color:#000000;">
<h2>Digitale Agentur | Passwort vergessen</h2>
</div>
</td>
</tr>
</table>
</div>
<!--[if mso | IE]>
</td>
<td
class="" style="vertical-align:top;width:600px;"
>
<![endif]-->
<div class="mj-column-per-100 mj-outlook-group-fix" style="font-size:0px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:100%;">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top;" width="100%">
<tr>
<td align="left" style="font-size:0px;padding:10px 25px;word-break:break-word;">
<div style="font-family:Roboto;font-size:18px;line-height:1;text-align:left;color:#000000;">
<p>Hallo {{user.first_name}} {{user.last_name}},</p> Sie haben ein neues Passwort für den Zugang ihrer Agentur <b>{{user.profile.agency.name}}</b> angefordert. Bitte gehen Sie auf folgenden Link, um ein Passwort zu erstellen:
<p>
{% block reset_link %}
<h4><a href="{{ protocol }}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %}">{{ protocol }}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %}</a></h4> {% endblock %}
<h4>Ihr Benutzername: {{ user.get_username }}</h4>
</p> Sollten Sie kein Passwort angefordert haben, ignorieren Sie diese E-Mail.
<p>Weitere Informationen erhalten Sie von Ihrem Agenturleiter. Vielen Dank, dass Sie die Plattform <b>Digitale Agentur</b> nutzen!</p>
<p>Mit freundlichen Grüßen</p>
<p>Ihr Team von Digitale Agentur</p>
</div>
</td>
</tr>
<tr>
<td style="font-size:0px;padding:10px 25px;word-break:break-word;">
<p style="border-top:solid 4px #5a5c69;font-size:1;margin:0px auto;width:100%;"> </p>
<!--[if mso | IE]>
<table
align="center" border="0" cellpadding="0" cellspacing="0" style="border-top:solid 4px #5a5c69;font-size:1;margin:0px auto;width:550px;" role="presentation" width="550px"
>
<tr>
<td style="height:0;line-height:0;">
&nbsp;
</td>
</tr>
</table>
<![endif]-->
</td>
</tr>
</table>
</div>
<!--[if mso | IE]>
</td>
</tr>
</table>
<![endif]-->
</td>
</tr>
</tbody>
</table>
</div>
<!--[if mso | IE]>
</td>
</tr>
</table>
<![endif]-->
</div>
</body> </body>
</html>
{% endautoescape %} </html>

View File

@ -0,0 +1,30 @@
{% load mjml %}
{% mjml %}
<mjml>
<mj-body>
<mj-section>
<mj-column width="100%">
<mj-divider border-color="#5a5c69"></mj-divider>
<mj-text font-size="20px" font-family="Roboto"><h2>Digitale Agentur | Passwort vergessen</h2></mj-text>
</mj-column>
<mj-column width="100%">
<mj-text font-size="18px" font-family="Roboto">
<p>Hallo {{user.first_name}} {{user.last_name}},</p>
Sie haben ein neues Passwort für den Zugang ihrer Agentur <b>{{user.profile.agency.name}}</b> angefordert. Bitte gehen Sie auf folgenden Link, um ein Passwort zu erstellen:
<p>
{% block reset_link %}
<h4><a href="{{ protocol }}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %}">{{ protocol }}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %}</a></h4>
{% endblock %}
<h4>Ihr Benutzername: {{ user.get_username }}</h4>
</p>
Sollten Sie kein Passwort angefordert haben, ignorieren Sie diese E-Mail.
<p>Weitere Informationen erhalten Sie von Ihrem Agenturleiter. Vielen Dank, dass Sie die Plattform <b>Digitale Agentur</b> nutzen!</p>
<p>Mit freundlichen Grüßen</p>
<p>Ihr Team von Digitale Agentur</p>
</mj-text>
<mj-divider border-color="#5a5c69"></mj-divider>
</mj-column>
</mj-section>
</mj-body>
</mjml>
{% endmjml %}

View File

@ -0,0 +1,32 @@
{% load i18n %}{% autoescape off %}
<html>
<head>
<link href='https://fonts.googleapis.com/css?family=Roboto&display=swap' rel='stylesheet' type='text/css'>
<style>
html {font-family: 'Roboto' !important;}html h6 {font-family: 'Roboto' !important;font-size: 1.0em;}html h5 {font-family: 'Roboto' !important;font-size: 1.1em;}html h4 {font-family: 'Roboto' !important;font-size: 1.3em;}html h3 {font-family: 'Roboto' !important;font-size: 1.5em;}html h2 {font-family: 'Roboto' !important;font-size: 1.7em;}html h1 {font-family: 'Roboto' !important;font-size: 2em;}body p{font-family: 'Roboto' !important;font-size: 0.9; color: #000000;}
</style>
</head>
<body>
<h3>Digitale Agentur | Passwort vergessen</h3>
<hr>
<p>
Hallo {{user.first_name}} {{user.last_name}},<br /><br />
Sie haben ein neues Passwort für den Zugang ihrer Agentur <b>{{user.profile.agency.name}}</b> angefordert. Bitte gehen Sie auf folgenden Link, um ein Passwort zu erstellen:
<p>
{% block reset_link %}
<h4><a href="{{ protocol }}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %}">{{ protocol }}://{{ domain }}{% url 'password_reset_confirm' uidb64=uid token=token %}</a></h4>
{% endblock %}
<h4>Ihr Benutzername: {{ user.get_username }}</h4>
</p>
Sollten Sie kein Passwort angefordert haben, ignorieren Sie diese E-Mail.
</p>
<p>
Vielen Dank, dass Sie die Plattform <b>Digitale Agentur</b> nutzen!
<br /><br />
Mit freundlichen Grüßen
<br /><br />
Ihr Team von Digitale Agentur
</p>
</body>
</html>
{% endautoescape %}

View File

@ -44,6 +44,13 @@
<!-- Divider --> <!-- Divider -->
<hr class="sidebar-divider my-0"> <hr class="sidebar-divider my-0">
<div style="bottom: 10px; position: absolute;" class="sidebar-heading">
Version 0.7.3
</div>
<div style="bottom: 40px; position: absolute;" class="sidebar-heading">
<a href="{% url 'datenschutzda' %}">Datenschutz</a><br />
<a href="{% url 'impressumda' %}">Impressum</a>
</div>
</ul> </ul>
<!-- End of Sidebar --> <!-- End of Sidebar -->
@ -55,7 +62,6 @@
<!-- Begin Page Content --> <!-- Begin Page Content -->
<div class="container-fluid mt-4"> <div class="container-fluid mt-4">
{% block content %} {% block content %}
{% endblock %} {% endblock %}
</div> </div>

View File

@ -1,31 +1,183 @@
{% load i18n %}{% autoescape off %} <!doctype html>
<html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head> <head>
<link href='https://fonts.googleapis.com/css?family=Roboto&display=swap' rel='stylesheet' type='text/css'> <title> </title>
<style> <!--[if !mso]><!-- -->
html {font-family: 'Roboto' !important;}html h6 {font-family: 'Roboto' !important;font-size: 1.0em;}html h5 {font-family: 'Roboto' !important;font-size: 1.1em;}html h4 {font-family: 'Roboto' !important;font-size: 1.3em;}html h3 {font-family: 'Roboto' !important;font-size: 1.5em;}html h2 {font-family: 'Roboto' !important;font-size: 1.7em;}html h1 {font-family: 'Roboto' !important;font-size: 2em;}body p{font-family: 'Roboto' !important;font-size: 0.9; color: #000000;} <meta http-equiv="X-UA-Compatible" content="IE=edge">
</style> <!--<![endif]-->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style type="text/css">
#outlook a {
padding: 0;
}
body {
margin: 0;
padding: 0;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
table,
td {
border-collapse: collapse;
mso-table-lspace: 0pt;
mso-table-rspace: 0pt;
}
img {
border: 0;
height: auto;
line-height: 100%;
outline: none;
text-decoration: none;
-ms-interpolation-mode: bicubic;
}
p {
display: block;
margin: 13px 0;
}
</style>
<!--[if mso]>
<xml>
<o:OfficeDocumentSettings>
<o:AllowPNG/>
<o:PixelsPerInch>96</o:PixelsPerInch>
</o:OfficeDocumentSettings>
</xml>
<![endif]-->
<!--[if lte mso 11]>
<style type="text/css">
.mj-outlook-group-fix { width:100% !important; }
</style>
<![endif]-->
<!--[if !mso]><!-->
<link href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700" rel="stylesheet" type="text/css">
<style type="text/css">
@import url(https://fonts.googleapis.com/css?family=Roboto:300,400,500,700);
</style>
<!--<![endif]-->
<style type="text/css">
@media only screen and (min-width:480px) {
.mj-column-per-100 {
width: 100% !important;
max-width: 100%;
}
}
</style>
<style type="text/css">
</style>
</head> </head>
<body> <body>
<h3>Digitale Agentur Registrierung</h3> <div style="">
<p> <!--[if mso | IE]>
Hallo {{username}},<br /> <table
Ihre Agentur wurde erstellt. Sie können sich nun hier anmelden und ihre Agentur gestalten: align="center" border="0" cellpadding="0" cellspacing="0" class="" style="width:600px;" width="600"
<p> >
<a href="https://digitale-agentur.com">https://digitale-agentur.com</a> <tr>
</p> <td style="line-height:0px;font-size:0px;mso-line-height-rule:exactly;">
<br /> <![endif]-->
Ihr Benutzername: {{ username_log }} <div style="margin:0px auto;max-width:600px;">
<br /> <table align="center" border="0" cellpadding="0" cellspacing="0" role="presentation" style="width:100%;">
Weitere Informationen erhalten Sie in unserem Wiki <a href="https://wiki.digitale-agentur.com/">https://wiki.digitale-agentur.com/</a> oder per E-Mail an support@digitale-agentur.com! <tbody>
</p> <tr>
<p> <td style="direction:ltr;font-size:0px;padding:20px 0;text-align:center;">
Vielen Dank, dass Sie die Plattform <i>Digitale Agentur</i> nutzen! <!--[if mso | IE]>
<br /> <table role="presentation" border="0" cellpadding="0" cellspacing="0">
Mit freundlichen Grüßen
<br /><br /> <tr>
Ihr Team von Digitale Agentur
</p> <td
class="" style="vertical-align:top;width:600px;"
>
<![endif]-->
<div class="mj-column-per-100 mj-outlook-group-fix" style="font-size:0px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:100%;">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top;" width="100%">
<tr>
<td style="font-size:0px;padding:10px 25px;word-break:break-word;">
<p style="border-top:solid 4px #5a5c69;font-size:1;margin:0px auto;width:100%;"> </p>
<!--[if mso | IE]>
<table
align="center" border="0" cellpadding="0" cellspacing="0" style="border-top:solid 4px #5a5c69;font-size:1;margin:0px auto;width:550px;" role="presentation" width="550px"
>
<tr>
<td style="height:0;line-height:0;">
&nbsp;
</td>
</tr>
</table>
<![endif]-->
</td>
</tr>
<tr>
<td align="left" style="font-size:0px;padding:10px 25px;word-break:break-word;">
<div style="font-family:Roboto;font-size:20px;line-height:1;text-align:left;color:#000000;">
<h2>Digitale Agentur | Registrierung</h2>
</div>
</td>
</tr>
</table>
</div>
<!--[if mso | IE]>
</td>
<td
class="" style="vertical-align:top;width:600px;"
>
<![endif]-->
<div class="mj-column-per-100 mj-outlook-group-fix" style="font-size:0px;text-align:left;direction:ltr;display:inline-block;vertical-align:top;width:100%;">
<table border="0" cellpadding="0" cellspacing="0" role="presentation" style="vertical-align:top;" width="100%">
<tr>
<td align="left" style="font-size:0px;padding:10px 25px;word-break:break-word;">
<div style="font-family:Roboto;font-size:18px;line-height:1;text-align:left;color:#000000;">
<p>Hallo {{username}},</p> Ihre Agentur wurde erstellt. Sie können sich nun hier anmelden und Ihre Agentur gestalten:
<p> <a href="https://digitale-agentur.com">https://digitale-agentur.com</a> </p> <br /> Ihr Benutzername: {{ username_log }} <br /> Weitere Informationen erhalten Sie in unserem Wiki <a href="https://wiki.digitale-agentur.com/">https://wiki.digitale-agentur.com/</a> oder per E-Mail an support@digitale-agentur.com! </p>
<p>Weitere Informationen erhalten Sie von Ihrem Agenturleiter. Vielen Dank, dass Sie die Plattform <b>Digitale Agentur</b> nutzen!</p>
<p>Mit freundlichen Grüßen</p>
<p>Ihr Team von Digitale Agentur</p>
</div>
</td>
</tr>
<tr>
<td style="font-size:0px;padding:10px 25px;word-break:break-word;">
<p style="border-top:solid 4px #5a5c69;font-size:1;margin:0px auto;width:100%;"> </p>
<!--[if mso | IE]>
<table
align="center" border="0" cellpadding="0" cellspacing="0" style="border-top:solid 4px #5a5c69;font-size:1;margin:0px auto;width:550px;" role="presentation" width="550px"
>
<tr>
<td style="height:0;line-height:0;">
&nbsp;
</td>
</tr>
</table>
<![endif]-->
</td>
</tr>
</table>
</div>
<!--[if mso | IE]>
</td>
</tr>
</table>
<![endif]-->
</td>
</tr>
</tbody>
</table>
</div>
<!--[if mso | IE]>
</td>
</tr>
</table>
<![endif]-->
</div>
</body> </body>
</html>
{% endautoescape %} </html>

View File

@ -0,0 +1,31 @@
{% load mjml %}
{% mjml %}
<mjml>
<mj-body>
<mj-section>
<mj-column width="100%">
<mj-divider border-color="#5a5c69"></mj-divider>
<mj-text font-size="20px" font-family="Roboto"><h2>Digitale Agentur | Registrierung</h2></mj-text>
</mj-column>
<mj-column width="100%">
<mj-text font-size="18px" font-family="Roboto">
<p>Hallo {{username}},</p>
Ihre Agentur wurde erstellt. Sie können sich nun hier anmelden und Ihre Agentur gestalten:
<p>
<a href="https://digitale-agentur.com">https://digitale-agentur.com</a>
</p>
<br />
Ihr Benutzername: {{ username_log }}
<br />
Weitere Informationen erhalten Sie in unserem Wiki <a href="https://wiki.digitale-agentur.com/">https://wiki.digitale-agentur.com/</a> oder per E-Mail an support@digitale-agentur.com!
</p>
<p>Weitere Informationen erhalten Sie von Ihrem Agenturleiter. Vielen Dank, dass Sie die Plattform <b>Digitale Agentur</b> nutzen!</p>
<p>Mit freundlichen Grüßen</p>
<p>Ihr Team von Digitale Agentur</p>
</mj-text>
<mj-divider border-color="#5a5c69"></mj-divider>
</mj-column>
</mj-section>
</mj-body>
</mjml>
{% endmjml %}

View File

@ -0,0 +1,31 @@
{% load i18n %}{% autoescape off %}
<html>
<head>
<link href='https://fonts.googleapis.com/css?family=Roboto&display=swap' rel='stylesheet' type='text/css'>
<style>
html {font-family: 'Roboto' !important;}html h6 {font-family: 'Roboto' !important;font-size: 1.0em;}html h5 {font-family: 'Roboto' !important;font-size: 1.1em;}html h4 {font-family: 'Roboto' !important;font-size: 1.3em;}html h3 {font-family: 'Roboto' !important;font-size: 1.5em;}html h2 {font-family: 'Roboto' !important;font-size: 1.7em;}html h1 {font-family: 'Roboto' !important;font-size: 2em;}body p{font-family: 'Roboto' !important;font-size: 0.9; color: #000000;}
</style>
</head>
<body>
<h3>Digitale Agentur Registrierung</h3>
<p>
Hallo {{username}},<br />
Ihre Agentur wurde erstellt. Sie können sich nun hier anmelden und ihre Agentur gestalten:
<p>
<a href="https://digitale-agentur.com">https://digitale-agentur.com</a>
</p>
<br />
Ihr Benutzername: {{ username_log }}
<br />
Weitere Informationen erhalten Sie in unserem Wiki <a href="https://wiki.digitale-agentur.com/">https://wiki.digitale-agentur.com/</a> oder per E-Mail an support@digitale-agentur.com!
</p>
<p>
Vielen Dank, dass Sie die Plattform <i>Digitale Agentur</i> nutzen!
<br />
Mit freundlichen Grüßen
<br /><br />
Ihr Team von Digitale Agentur
</p>
</body>
</html>
{% endautoescape %}

View File

@ -30,7 +30,9 @@ urlpatterns = [
path('areataskupdate/<int:pk>/', views.UsersAreaTaskUpdate, name="users-areataskupdate"), path('areataskupdate/<int:pk>/', views.UsersAreaTaskUpdate, name="users-areataskupdate"),
path('globalsearch/', views.GlobalSearch, name="globalsearch"), path('globalsearch/', views.GlobalSearch, name="globalsearch"),
path('standardrout/', views.searchStandardRouter, name="standardrouter"), path('standardrout/', views.searchStandardRouter, name="standardrouter"),
path('support/', views.support, name="supportda"), path('support/', views.support, name="supportda"),
path('datenschutz/', views.datenschutz, name="datenschutzda"),
path('impressum/', views.impressum, name="impressumda"),
path('setuserparent/', views.setuserparent, name="users-setuserparent"), path('setuserparent/', views.setuserparent, name="users-setuserparent"),
path('sendpassmail/', views.sendpassmail, name="users-sendpassmail") path('sendpassmail/', views.sendpassmail, name="users-sendpassmail")
] ]

View File

@ -556,3 +556,15 @@ def sendpassmail(request):
request.META['SERVER_PORT'] = '443' request.META['SERVER_PORT'] = '443'
form.save(request= request,use_https=True,from_email="support@digitale-agentur.com",html_email_template_name='users/password_reset_mail.html') form.save(request= request,use_https=True,from_email="support@digitale-agentur.com",html_email_template_name='users/password_reset_mail.html')
return JsonResponse({'message' : 0}) return JsonResponse({'message' : 0})
def datenschutz(request):
if request.user.is_authenticated:
return render(request, 'users/datenschutz.html')
else:
return render(request, 'users/datenschutz_p.html')
def impressum(request):
if request.user.is_authenticated:
return render(request, 'users/impressum.html')
else:
return render(request, 'users/impressum_p.html')