Compare commits

...
24 Commits
Author SHA1 Message Date
Esther Kleinhenz e50439a1ff changed dashoard and added sicherheit und template 2018-11-15 14:17:44 +01:00
Esther Kleinhenz 39b964c4e8 edited einleitung 2018-11-14 18:30:14 +01:00
Esther Kleinhenz 18e4414c44 deleted studentpage and added code to bloglist view 2018-11-13 19:15:46 +01:00
Esther Kleinhenz 8fa768fd91 added erklaerung.pdf 2018-11-13 10:06:07 +01:00
Esther Kleinhenz d275c8a0a1 added figure post-edit-view 2018-11-13 09:46:11 +01:00
Esther Kleinhenz 5ec22d5ff9 added new buttons and einen artikel bearbeiten 2018-11-12 19:17:20 +01:00
Esther Kleinhenz 67e91fc5af added chapter verwalten and edited the website menu 2018-11-11 23:27:28 +01:00
Esther Kleinhenz 5214f806b0 added sth to benutzerberechtigungen 2018-11-09 18:40:43 +01:00
Esther Kleinhenz 02adc8fe6d added berechtigungen der user 2018-11-09 16:00:25 +01:00
Esther Kleinhenz ac66d766c5 added organisation 2018-11-09 08:13:58 +01:00
Esther Kleinhenz 535857581f added organisation capitle 2018-11-07 19:37:24 +01:00
Esther Kleinhenz 7362469204 added to datenmodellierung 2018-11-06 23:40:23 +01:00
Esther Kleinhenz 02551b24b5 edited chapter organisation with new subsections and text plus fortschungsdesign 2018-11-04 22:57:20 +01:00
Esther Kleinhenz 6c5bcb0131 added prototyp capitle and edited post_draft 2018-11-04 15:03:50 +01:00
Esther Kleinhenz acb8668991 edited the theoratical section with images and references 2018-11-03 14:57:57 +01:00
Esther Kleinhenz a577e47acc updated pyton versions and wrote hilfsbibliotheken 2018-11-03 00:09:52 +01:00
Esther Kleinhenz 3b9f4c33f2 added requ.txt and dockerfiles 2018-10-30 20:09:38 +01:00
Esther Kleinhenz 62c84570cc removed blacklist things 2018-10-30 18:51:48 +01:00
Esther Kleinhenz d773cba908 added hitcount for staff 2018-10-30 18:43:30 +01:00
Esther Kleinhenz 38a25437b6 added post_office and crontab 2018-10-30 17:59:14 +01:00
Esther Kleinhenz 292e9eda2a fixed saving tags 2018-10-30 17:02:38 +01:00
Esther Kleinhenz 65d167a8b8 deleted djcelery 2018-10-30 12:26:17 +01:00
Esther Kleinhenz 92fda4831a new branch with djcelery 2018-10-30 11:46:13 +01:00
Esther Kleinhenz 806718824c deleted celery and report schedule 2018-10-29 11:28:00 +01:00
695 changed files with 28019 additions and 65707 deletions

No files matched your search

+46
View File
@@ -0,0 +1,46 @@
# The first instruction is what image we want to base our container on
# We Use an official Python runtime as a parent image
#FROM python:3.6
# FROM directive instructing base image to build upon
FROM python:3.6.6
# The enviroment variable ensures that the python output is set straight
# to the terminal with out buffering it first
#ENV PYTHONUNBUFFERED 1
# App directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# Install azure event hub client dependencies
#COPY p /usr/src/app/
# Bundle app source
COPY . /usr/src/app
# COPY startup script into known file location in container
COPY start.sh /start.sh
# create root directory for our project in the container
#RUN mkdir /esther_kleinhenz_ba
# EXPOSE port 8000 to allow communication to/from server
#EXPOSE 8000
RUN set -x \
&& buildDeps='curl gcc libc6-dev libsqlite3-dev libssl-dev make xz-utils zlib1g-dev'
# Install any needed packages specified in requirements.txt
RUN pip install -r requirements.txt
# Set the working directory to /esther_kleinhenz_ba
#WORKDIR /esther_kleinhenz_ba
# CMD specifcies the command to execute to start the server running.
CMD ["/start.sh"]
# done!
# Copy the current directory contents into the container at /esther_kleinhenz_ba
#ADD . /esther_kleinhenz_ba/
-4
View File
@@ -1,5 +1 @@
from __future__ import absolute_import, unicode_literals
# This will make sure celery is always imported when
# Django starts so that shared_task will use this app.
from .celeryapp import app as celery_app
__all__ = ['celery_app']
+1 -41
View File
@@ -4,8 +4,7 @@ from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from django.contrib.auth.models import User
from .models import Post, CustomUser
from .models import ScheduledReport, ReportRecipient, ScheduledReportGroup
from .forms import ScheduledReportForm
class CustomUserInline(admin.StackedInline):
@@ -23,42 +22,3 @@ admin.site.register(User, UserAdmin)
admin.site.register(Post)
class ReportRecipientAdmin(admin.TabularInline):
model = ReportRecipient
class ScheduledReportAdmin(admin.ModelAdmin):
"""
List display for Scheduled reports in Django admin
"""
model = ScheduledReport
list_display = ('id', 'get_recipients')
inlines = [
ReportRecipientAdmin
]
form = ScheduledReportForm
def get_recipients(self, model):
recipients = model.reportrecep.all().values_list('email', flat=True)
if not recipients:
return 'No recipients added'
recipient_list = ''
for recipient in recipients:
recipient_list = recipient_list + recipient + ', '
return recipient_list[:-2]
get_recipients.short_description = 'Recipients'
get_recipients.allow_tags = True
class ScheduledReportGroupAdmin(admin.ModelAdmin):
"""
List display for ScheduledReportGroup Admin
"""
model = ScheduledReportGroup
list_display = ('get_scheduled_report_name','get_report_name')
def get_scheduled_report_name(self, model):
return model.scheduled_report.subject
def get_report_name(self, model):
return model.report.name
get_scheduled_report_name.short_description = "Scheduled Report Name"
get_report_name.short_description = "Report Name"
show_change_link = True
get_report_name.allow_tags = True
admin.site.register(ScheduledReport, ScheduledReportAdmin)
admin.site.register(ScheduledReportGroup, ScheduledReportGroupAdmin)
-13
View File
@@ -1,13 +0,0 @@
from __future__ import absolute_import
import os
from celery import Celery
# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'application.settings')
from django.conf import settings
app = Celery('application')
# Using a string here means the worker don't have to serialize
# the configuration object to child processes.
app.config_from_object('django.conf:settings')
# Load task modules from all registered Django app configs.
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
+2 -32
View File
@@ -4,12 +4,6 @@ from datetime import datetime
from .models import Post, CustomUser
from django.forms import ModelForm, ValidationError
from taggit.forms import *
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from datetime import datetime
from croniter import croniter
from django.forms import ModelForm, ValidationError
from .models import ScheduledReport
class PostForm(forms.ModelForm):
class Meta:
@@ -17,31 +11,7 @@ class PostForm(forms.ModelForm):
fields = ('title', 'text', 'published_date','tags')
class NewTagForm(forms.ModelForm):
m_tags = TagField()
tags = TagField()
class Meta:
model = CustomUser
fields = ['m_tags']
class ScheduledReportForm(ModelForm):
class Meta:
model = ScheduledReport
fields = ['subject', 'cron_expression']
fields = ['subject', 'cron_expression']
help_texts = {'cron_expression': 'Scheduled time is considered in UTC'}
def clean(self):
cleaned_data = super(ScheduledReportForm, self).clean()
cron_expression = cleaned_data.get("cron_expression")
try:
iter = croniter(cron_expression, datetime.now())
except:
raise ValidationError("Incorrect cron expression:\
The information you must include is (in order of appearance):\
A number (or list of numbers, or range of numbers), m, representing the minute of the hour\
A number (or list of numbers, or range of numbers), h, representing the hour of the day\
A number (or list of numbers, or range of numbers), dom, representing the day of the month\
A number (or list, or range), or name (or list of names), mon, representing the month of the year\
A number (or list, or range), or name (or list of names), dow, representing the day of the week\
The asterisks (*) in our entry tell cron that for that unit of time, the job should be run every.\
Eg. */5 * * * * cron for executing every 5 mins")
return cleaned_data
fields = ['tags']
+43 -1
View File
@@ -1,9 +1,10 @@
# Generated by Django 2.1 on 2018-08-18 15:34
# Generated by Django 2.1.2 on 2018-10-30 10:43
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
import taggit.managers
class Migration(migrations.Migration):
@@ -12,6 +13,7 @@ class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('taggit', '0001_initial'),
]
operations = [
@@ -19,6 +21,8 @@ class Migration(migrations.Migration):
name='CustomUser',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('tags', taggit.managers.TaggableManager(help_text='A comma-separated list of tags.', through='taggit.TaggedItem', to='taggit.Tag', verbose_name='Tags')),
('user', models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
],
),
migrations.CreateModel(
@@ -30,6 +34,44 @@ class Migration(migrations.Migration):
('created_date', models.DateTimeField(default=django.utils.timezone.now)),
('published_date', models.DateTimeField(blank=True, null=True)),
('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
('tags', taggit.managers.TaggableManager(help_text='A comma-separated list of tags.', through='taggit.TaggedItem', to='taggit.Tag', verbose_name='Tags')),
],
),
migrations.CreateModel(
name='Report',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('report_text', models.TextField()),
],
),
migrations.CreateModel(
name='ReportRecipient',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('email', models.EmailField(max_length=254)),
],
),
migrations.CreateModel(
name='ScheduledReport',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('subject', models.CharField(max_length=200)),
('last_run_at', models.DateTimeField(blank=True, null=True)),
('next_run_at', models.DateTimeField(blank=True, null=True)),
('cron_expression', models.CharField(max_length=200)),
],
),
migrations.CreateModel(
name='ScheduledReportGroup',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('report', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='report', to='application.Report')),
('scheduled_report', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='relatedscheduledreport', to='application.ScheduledReport')),
],
),
migrations.AddField(
model_name='reportrecipient',
name='scheduled_report',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='reportrecep', to='application.ScheduledReport'),
),
]
@@ -1,35 +0,0 @@
# Generated by Django 2.1 on 2018-08-18 15:34
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
import taggit.managers
class Migration(migrations.Migration):
initial = True
dependencies = [
('taggit', '0001_initial'),
('application', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.AddField(
model_name='post',
name='tags',
field=taggit.managers.TaggableManager(help_text='A comma-separated list of tags.', through='taggit.TaggedItem', to='taggit.Tag', verbose_name='Tags'),
),
migrations.AddField(
model_name='customuser',
name='mytags',
field=taggit.managers.TaggableManager(help_text='A comma-separated list of tags.', through='taggit.TaggedItem', to='taggit.Tag', verbose_name='Tags'),
),
migrations.AddField(
model_name='customuser',
name='user',
field=models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
]
@@ -0,0 +1,37 @@
# Generated by Django 2.1.2 on 2018-10-30 11:23
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('application', '0001_initial'),
]
operations = [
migrations.RemoveField(
model_name='reportrecipient',
name='scheduled_report',
),
migrations.RemoveField(
model_name='scheduledreportgroup',
name='report',
),
migrations.RemoveField(
model_name='scheduledreportgroup',
name='scheduled_report',
),
migrations.DeleteModel(
name='Report',
),
migrations.DeleteModel(
name='ReportRecipient',
),
migrations.DeleteModel(
name='ScheduledReport',
),
migrations.DeleteModel(
name='ScheduledReportGroup',
),
]
@@ -1,20 +0,0 @@
# Generated by Django 2.1 on 2018-08-30 16:14
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('application', '0002_auto_20180818_1734'),
]
operations = [
migrations.AlterField(
model_name='customuser',
name='user',
field=models.OneToOneField(default=None, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
]
@@ -0,0 +1,19 @@
# Generated by Django 2.1.2 on 2018-10-30 15:33
from django.db import migrations
import taggit.managers
class Migration(migrations.Migration):
dependencies = [
('application', '0002_auto_20181030_1223'),
]
operations = [
migrations.AlterField(
model_name='customuser',
name='tags',
field=taggit.managers.TaggableManager(blank=True, help_text='A comma-separated list of tags.', through='taggit.TaggedItem', to='taggit.Tag', verbose_name='Tags'),
),
]
@@ -1,20 +0,0 @@
# Generated by Django 2.1 on 2018-08-31 08:19
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('application', '0003_auto_20180830_1814'),
]
operations = [
migrations.AlterField(
model_name='customuser',
name='user',
field=models.OneToOneField(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
]
@@ -1,18 +0,0 @@
# Generated by Django 2.1 on 2018-10-19 14:45
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('application', '0004_auto_20180831_1019'),
]
operations = [
migrations.RenameField(
model_name='customuser',
old_name='mytags',
new_name='tags',
),
]
@@ -1,51 +0,0 @@
# Generated by Django 2.1 on 2018-10-21 11:47
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('application', '0005_auto_20181019_1645'),
]
operations = [
migrations.CreateModel(
name='Report',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('report_text', models.TextField()),
],
),
migrations.CreateModel(
name='ReportRecipient',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('email', models.EmailField(max_length=254)),
],
),
migrations.CreateModel(
name='ScheduledReport',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('subject', models.CharField(max_length=200)),
('last_run_at', models.DateTimeField(blank=True, null=True)),
('next_run_at', models.DateTimeField(blank=True, null=True)),
('cron_expression', models.CharField(max_length=200)),
],
),
migrations.CreateModel(
name='ScheduledReportGroup',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('report', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='report', to='application.Report')),
('scheduled_report', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='relatedscheduledreport', to='application.ScheduledReport')),
],
),
migrations.AddField(
model_name='reportrecipient',
name='scheduled_report',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='reportrecep', to='application.ScheduledReport'),
),
]
+2 -38
View File
@@ -9,7 +9,7 @@ from croniter import croniter
class CustomUser(models.Model):
user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
tags = TaggableManager()
tags = TaggableManager(blank=True)
class Post(models.Model):
author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
@@ -26,40 +26,4 @@ class Post(models.Model):
self.save()
def __str__(self):
return self.title
class Report(models.Model):
report_text = models.TextField()
class ScheduledReport(models.Model):
"""
Contains email subject and cron expression,to evaluate when the email has to be sent
"""
subject = models.CharField(max_length=200)
last_run_at = models.DateTimeField(null=True, blank=True)
next_run_at = models.DateTimeField(null=True, blank=True)
cron_expression = models.CharField(max_length=200)
def save(self, *args, **kwargs):
"""
function to evaluate "next_run_at" using the cron expression, so that it is updated once the report is sent.
"""
self.last_run_at = datetime.now()
iter = croniter(self.cron_expression, self.last_run_at)
self.next_run_at = iter.get_next(datetime)
super(ScheduledReport, self).save(*args, **kwargs)
def __unicode__(self):
return self.subject
class ScheduledReportGroup(models.Model):
"""
Many to many mapping between reports which will be sent out in a scheduled report
"""
report = models.ForeignKey(Report, related_name='report', on_delete=models.CASCADE)
scheduled_report = models.ForeignKey(ScheduledReport,
related_name='relatedscheduledreport', on_delete=models.CASCADE)
class ReportRecipient(models.Model):
"""
Stores all the recipients of the given scheduled report
"""
email = models.EmailField()
scheduled_report = models.ForeignKey(ScheduledReport, related_name='reportrecep', on_delete=models.CASCADE)
return self.title
-7
View File
@@ -1,7 +0,0 @@
from celery.task.schedules import crontab
from celery.decorators import periodic_task
from .email_service import send_emails
# this will run every minute, see http://celeryproject.org/docs/reference/celery.task.schedules.html#celery.task.schedules.crontab
@periodic_task(run_every=crontab(hour="*", minute="*", day_of_week="*"))
def trigger_emails():
send_emails()
+29 -11
View File
@@ -20,8 +20,8 @@
<img src="{% static 'images/efi.jpg' %}" width="35" height="35" alt="efi">
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent"
aria-expanded="false" aria-label="Toggle navigation">
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
@@ -32,25 +32,40 @@
<a class="nav-link" href="{% url 'admin:index' %}">Administration</a>
</li>
<li>
<a class="nav-link" href="{% url 'post_list' %}">Dashboard</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'student_page' %}">Studentenansicht</a>
<a class="nav-link" href="{% url 'tag_list' %}">Dashboard</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'blog_search_list_view' %}">Suche</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'post_new' %}" class="top-menu"><span class="glyphicon glyphicon-plus">+</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'post_draft_list' %}" class="top-menu"><span class="glyphicon glyphicon-edit">Entwürfe</span></a>
</li>
{% elif user.is_staff %}
<li class="nav-item">
<a class="nav-link" href="{% url 'logout' %}">Administration</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'post_list' %}">Dashboard</a>
<a class="nav-link" href="{% url 'tag_list' %}">Dashboard</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'blog_search_list_view' %}">Suche</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'post_new' %}" class="top-menu"><span class="glyphicon glyphicon-plus">+</span></a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'post_draft_list' %}" class="top-menu"><span class="glyphicon glyphicon-edit">Entwürfe</span></a>
</li>
{% else %}
<li class="nav-item">
<a class="nav-link" href="{% url 'student_page' %}">{{user.get_username}}'s Dashboard</a>
<a class="nav-link" href="{% url 'tag_list' %}">{{user.get_username}}'s Dashboard</a>
</li>
<li class="nav-item">
<a class="nav-link" href="{% url 'blog_search_list_view' %}">Suche</a>
</li>
{% endif %}
</ul>
@@ -71,16 +86,19 @@
</a>
<ul id="login-dp" class="dropdown-menu">
<li>
<form class="form" role="form" method="post" action="{% url 'login' %}" accept-charset="UTF-8" id="login-nav">
<form class="form" role="form" method="post" action="{% url 'login' %}" accept-charset="UTF-8"
id="login-nav">
{% csrf_token %} {% if next %}
<input type="hidden" name="next" value="{{ next }}" /> {% endif %}
<div class="form-group">
<label class="sr-only" for="username">Benutzername</label>
<input type="text" class="form-control" id="username" name="username" placeholder="Benutzername" required>
<input type="text" class="form-control" id="username" name="username"
placeholder="Benutzername" required>
</div>
<div class="form-group">
<label class="sr-only" for="password">Kennwort</label>
<input type="password" class="form-control" id="password" name="password" placeholder="Kennwort" required>
<input type="password" class="form-control" id="password" name="password"
placeholder="Kennwort" required>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-block">Anmelden</button>
@@ -2,26 +2,52 @@
{% load taggit_templatetags2_tags %}
{% get_tagcloud as tags for 'application' %}
{% include_tagcloud 'application.Post' %}
<form type="get" action="." style="margin: 0">
<input id="search_box" type="text" name="search_box" placeholder="Search...">
<button id="search_submit" type="submit">Suchen</button>
</form>
<div>
{% for post in posts %}
<div class="post">
<div class="date">
{{ post.published_date }}
<div class="container-fluid">
<div class="modal-body row">
<div class="col-md-6">
Tag-Suche
<div id="custom-search-input">
<form type="get" action="." style="margin: 0" class="post-form">
<p>
<input id="search_box" type="text" name="search_box" placeholder="Search...">
</p>
<span>
<button id="search_submit" type="submit" class="save btn btn-outline-dark">Suchen</button>
</button>
</span>
</form>
<div>
{% for post in posts %}
<div class="post">
<div class="date">
{{ post.published_date }}
</div>
<h1>
<a href="{% url 'post_detail' pk=post.pk %}">{{ post.title }}</a>
</h1>
<p>{{ post.text|linebreaks }}</p>
{% for tag in post.tags.all %}
<a href="{% url 'post_list_by_tag' tag.slug %}">{{ tag.name }}</a>
{% if not forloop.last %}, {% endif %} {% endfor %} <p>
{{ post.author }}
</p>
</div>
{% endfor %}
</div>
</div>
</div>
<div class="col-md-6">
Abonniere deine Tags hier!
<form class="post-form" method="post">
{% csrf_token %} {{form.as_p}}
<button type="submit" class="save btn btn-outline-dark">Sichern</button>
</form>
{% if messages %}
{% for message in messages %}
<div {% if message.tags %} class="{{ message.tags }}" {% endif %}>{{ message }}</div>
{% endfor %}
{% endif %}
</div>
<h1>
<a href="{% url 'post_detail' pk=post.pk %}">{{ post.title }}</a>
</h1>
<p>{{ post.text|linebreaks }}</p>
Tags: {% for tag in post.tags.all %}
<a href="{% url 'post_list_by_tag' tag.slug %}">{{ tag.name }}</a>
{% if not forloop.last %}, {% endif %} {% endfor %} <p>
{{ post.author }}
</p>
</div>
{% endfor %}
</div>
{% endblock %}
+13 -4
View File
@@ -1,5 +1,7 @@
{% extends 'base.html' %} {% block content %}
{% extends 'base.html' %}{% block content %}
{% load hitcount_tags %}
<div class="post">
{% if post.published_date %}
<div class="date">
{{ post.published_date }}
@@ -8,21 +10,28 @@
<a class="btn btn-outline-dark" href="{% url 'post_publish' pk=post.pk %}">Publish</a>
{% endif %} {% if user.is_staff and user == post.author %}
<a class="btn btn-outline-dark" href="{% url 'post_edit' pk=post.pk %}">
<span class="glyphicon glyphicon-pencil">Edit</span>
<span class="glyphicon glyphicon-pencil">Bearbeiten</span>
</a>
<a class="btn btn-outline-dark" href="{% url 'post_remove' pk=post.pk %}">
<span class="glyphicon glyphicon-remove">Remove</span>
<span class="glyphicon glyphicon-remove">Löschen</span>
</a>
{% endif %}
<h1>{{ post.title }}</h1>
<p>{{ post.text|linebreaksbr }}</p>
<p>
Tags:
{% for tag in post.tags.all %}
<a href="{% url 'blog_search_list_view' %}">{{ tag.name }}, </a>
<a href="{% url 'blog_search_list_view' %}">{{ tag.name }} </a>
{% if not forloop.last %}, {% endif %}
{% endfor %}
</p>
<p>
Autor: {{ post.author }}
</p>
{% if user.is_staff %}
<p>
{% get_hit_count for post %} Benutzer haben diesen Post bereits gelesen!
</p>
{% endif %}
</div>
{% endblock %}
+2 -2
View File
@@ -1,9 +1,9 @@
{% extends 'base.html' %}
{% block content %}
<h1>New post</h1>
<h1>Artikel-Editor</h1>
<form method="POST" class="post-form">{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="save btn btn-outline-dark">Save</button>
<button type="submit" class="save btn btn-outline-dark">Sichern</button>
</form>
{% endblock %}
+7
View File
@@ -1,5 +1,12 @@
{% extends 'base.html' %} {% block content %}
{% if tag %} Posts tagged with "{{ tag.name }}" {% endif %}
{% if messages %}
<div class="messages">
{% for message in messages %}
<p {% if message.tags %} class="{{ message.tags }}" {% endif %}>{{ message }}</p>
{% endfor %}
</div>
{% endif %}
{% for post in posts %}
<div class="post">
<div class="date">
+6 -16
View File
@@ -1,24 +1,14 @@
{% extends "base.html" %} {% block content %} {% load taggit_templatetags2_tags %} {% get_taglist as tags for 'application.post'%}
{% extends "base.html" %} {% block content %} {% load taggit_templatetags2_tags %}
{% get_taglist as tags for 'application.post'%}
<div id="">
<ul>
{% for tag in tags %}
<li>{{tag}}
<a class="btn btn-outline-dark" href="{% url 'tag_remove' tag.slug %}">
<span class="glyphicon glyphicon-remove">Remove</span>
</a>
</li>
{{ result }} {% endfor %}
</ul>
</div>
<div>
<form class="post-form" method="post">
{% csrf_token %} {{form.as_p}}
<button type="submit" class="save btn btn-outline-dark">Save</button>
</form>
{% if messages %}
{% for message in messages %}
<div {% if message.tags %} class="{{ message.tags }}" {% endif %}>{{ message }}</div>
{% endfor %}
{% endif %}
<form class="post-form" method="post">
{% csrf_token %} {{form.as_p}}
<button type="submit" class="save btn btn-outline-dark">Save</button>
</form>
{% endblock %}
+4 -1
View File
@@ -4,6 +4,10 @@
<div>
</div>
<div>
<a id="search_submit" href="/posts" class="save btn btn-outline-dark">alle Artikel
</a>
{% for post in posts %}
<div class="post">
<div class="date">
@@ -19,7 +23,6 @@
{{ post.author }}
</p>
</div>
{% endfor %}
</div>
{% endblock %}
+6 -4
View File
@@ -8,10 +8,9 @@ import debug_toolbar
urlpatterns = [
url(r'^$', views.post_list, name='post_list'),
url(r'^$', views.tag_list, name='tag_list'),
url(r'^tag/(?P<slug>[-\w]+)/$', views.post_list, name='post_list_by_tag'),
url(r'^taglist/$', views.tag_list, name='tag_list'),
url(r'^student/', views.student_page, name='student_page'),
url(r'^posts/$', views.post_list, name='post_list'),
url(r'^search/', views.blog_search_list_view, name='blog_search_list_view'),
url(r'^search/result/$', views.blog_search_list_view, name='post_list_by_search'),
url(r'^post/(?P<pk>\d+)/$', views.post_detail, name='post_detail'),
@@ -20,10 +19,13 @@ urlpatterns = [
url(r'^drafts/$', views.post_draft_list, name='post_draft_list'),
url(r'^post/(?P<pk>\d+)/publish/$', views.post_publish, name='post_publish'),
url(r'^post/(?P<pk>\d+)/remove/$', views.post_remove, name='post_remove'),
url(r'^student/(?P<slug>[-\w]+)/remove/$', views.tag_remove, name='tag_remove'),
url(r'^tags/', include('taggit_templatetags2.urls')),
]
"""
url(r'^student/(?P<slug>[-\w]+)/remove/$', views.tag_remove, name='tag_remove'),
"""
if settings.DEBUG:
import debug_toolbar
urlpatterns += [
+49 -52
View File
@@ -8,13 +8,16 @@ from django.shortcuts import redirect
from django.contrib.auth.decorators import login_required
from django.contrib.admin.views.decorators import staff_member_required
from django.contrib.auth import authenticate, login, logout
from django.db.models import Q
import sys
import collections
from taggit_templatetags2.views import TagCanvasListView
from django.contrib.auth.models import User
from django.contrib import messages
from post_office.models import EmailTemplate
from post_office import mail
from hitcount.models import HitCount
from hitcount.views import HitCountMixin
import logging
@@ -49,7 +52,7 @@ def navlogin(request):
@login_required
def post_list(request, slug=None):
log = logging.getLogger('mysite')
posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('-published_date')
if slug:
tag = get_object_or_404(Tag, slug=slug)
posts = posts.filter(tags__in=[tag])
@@ -60,7 +63,9 @@ def post_list(request, slug=None):
@login_required
def post_detail(request, pk):
post = get_object_or_404(Post, pk=pk)
return render(request, 'post_detail.html', {'post': post})
hit_count = HitCount.objects.get_for_object(post)
hit_count_response = HitCountMixin.hit_count(request, hit_count)
return render(request, 'post_detail.html', locals())
@login_required
@@ -72,6 +77,7 @@ def post_new(request):
post = form.save(commit=False)
post.author = request.user
post.save()
form.save_m2m()
return redirect('post_detail', pk=post.pk)
else:
form = PostForm()
@@ -115,38 +121,21 @@ def post_publish(request, pk):
@staff_member_required
def post_remove(request, pk):
post = get_object_or_404(Post, pk=pk)
messages.info(request, 'Der Artikel "' + post.title + '" wurde gelöscht')
post.delete()
return redirect('post_list')
@login_required
""" @login_required
def tag_remove(request, slug=None):
if slug:
tag = get_object_or_404(Tag, slug=slug)
tag.delete()
save_m2m()
return redirect('student_page')
@login_required
def student_page(request):
log = logging.getLogger('mysite')
user_instance = get_object_or_404(CustomUser, user=request.user)
if request.method == "POST":
form = NewTagForm(request.POST, instance=user_instance)
if form.is_valid():
obj = form.save(commit=False)
obj.user = request.user
obj.save()
m_tags = form.cleaned_data['m_tags']
tags = Tag.objects.all()
if m_tags in tags:
obj.tags.add(*m_tags)
form.save_m2m()
return redirect('/student/')
else:
messages.info(request, 'Sorry !! Den Tag den du suchst gibt es leider nicht!')
else:
form = NewTagForm()
return render(request, 'student_page.html', {'form':form})
tag = Tag.get_object_or_404(Tag, slug = slug)
log.info(tag)
if slug:
user_instance.tags.remove(tag)
save_m2m()
return redirect('student_page') """
@login_required
def tag_list(request):
@@ -159,27 +148,6 @@ def tag_list(request):
posts = Post.objects.filter(tags__in=[tag]).order_by('-published_date')
log.info(posts)
return render(request, 'tag_list.html', locals())
class TagSearch(TagCanvasListView):
template_name = 'blog_search_list_view.html'
model = Post
context_object_name = 'list'
paginate_by = 8
def get_context_data(self, **kwargs):
context = super(CustomerSearch, self).get_context_data(**kwargs)
context = self.get_queryset()
return context
def get_queryset(self):
cObj = Customer.objects.all()
var_get_search = self.request.GET.get('search_box')
if var_get_search is not None:
cObj = cObj.filter(firstname__icontains=var_get_search)
if var_get_order_by is not None:
cObj = cObj.order_by(var_get_order_by)
return cObj
def blog_search_list_view(request):
log = logging.getLogger('mysite')
@@ -188,7 +156,36 @@ def blog_search_list_view(request):
search_query = request.GET.get('search_box', None)
log.info(search_query)
posts = posts.filter(tags__name__in=[search_query])
log = logging.getLogger('mysite')
user_instance = get_object_or_404(CustomUser, user=request.user)
if request.method == "POST":
log.info('post method')
form = NewTagForm(request.POST, instance=user_instance)
if form.is_valid():
log.info('form is valid')
obj = form.save(commit=False)
obj.user = request.user
tag_names = [tag.name for tag in Tag.objects.all()]
log.info(tag_names)
m_tags = form.cleaned_data['tags']
m_tags = ' '.join(str(m_tags) for m_tags in m_tags)
log.info(m_tags)
if m_tags in tag_names:
log.info('worked out')
obj.tags.add(m_tags)
obj.save()
messages.info(request, 'Der Tag "' + m_tags + '" wurde gespeichert')
return redirect('/search/')
else:
messages.info(request, 'Sorry !! Den Tag den du suchst gibt es leider nicht!')
else:
form = NewTagForm()
return render(request, 'blog_search_list_view.html', locals())
def tag_cloud(request):
return render(request, 'tag_cloud.html', {})
mail.send(
'kleinhenz.e@gmail.com', # List of email addresses also accepted
'esther.kleinhenz@web.de',
subject='My email',
message='Hi there!',
html_message='Hi <strong>there</strong>!',
)
File renamed without changes.
@@ -0,0 +1,36 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {chapter}{Acknowledgements}{iii}{chapter*.2}}
\@setckpt{AcknowledgmentsDedicationSentence/acknowledgements}{
\setcounter{page}{4}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
\setcounter{enumiii}{0}
\setcounter{enumiv}{0}
\setcounter{footnote}{0}
\setcounter{mpfootnote}{0}
\setcounter{part}{0}
\setcounter{chapter}{0}
\setcounter{section}{0}
\setcounter{subsection}{0}
\setcounter{subsubsection}{0}
\setcounter{paragraph}{0}
\setcounter{subparagraph}{0}
\setcounter{figure}{0}
\setcounter{table}{0}
\setcounter{float@type}{8}
\setcounter{parentequation}{0}
\setcounter{lstnumber}{1}
\setcounter{ContinuedFloat}{0}
\setcounter{subfigure}{0}
\setcounter{subtable}{0}
\setcounter{r@tfl@t}{0}
\setcounter{Item}{0}
\setcounter{Hfootnote}{0}
\setcounter{Hy@AnnotLevel}{0}
\setcounter{bookmark@seq@number}{2}
\setcounter{NAT@ctr}{0}
\setcounter{lstlisting}{0}
\setcounter{section@level}{0}
}
@@ -1,8 +1,8 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {chapter}{Abstract}{i}{figure.caption.1}}
\@writefile{toc}{\contentsline {chapter}{Abstract}{ii}{figure.caption.1}}
\@setckpt{abstract/abstract}{
\setcounter{page}{2}
\setcounter{page}{3}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
@@ -26,6 +26,7 @@
\setcounter{subfigure}{0}
\setcounter{subtable}{0}
\setcounter{r@tfl@t}{0}
\setcounter{AM@survey}{0}
\setcounter{Item}{0}
\setcounter{Hfootnote}{0}
\setcounter{Hy@AnnotLevel}{0}
@@ -22,9 +22,9 @@
\HyPL@Entry{0<</S/D>>}
\babel@aux{german}{}
\babel@aux{german}{}
\HyPL@Entry{1<</S/r>>}
\@input{abstract/abstract.aux}
\HyPL@Entry{2<</S/r>>}
\HyPL@Entry{6<</S/D>>}
\HyPL@Entry{5<</S/D>>}
\@writefile{toc}{\contentsline {chapter}{Abbildungsverzeichnis}{1}{chapter*.4}}
\@input{chapters/einleitung.aux}
\@input{chapters/framework.aux}
@@ -35,13 +35,31 @@
\bibstyle{alpha}
\citation{*}
\bibdata{references/References_2}
\bibcite{Bootstrap}{{BA11}{}{{}}{{}}}
\bibcite{Computer}{{Com18}{}{{}}{{}}}
\bibcite{Oracle}{{Coo10}{}{{}}{{}}}
\bibcite{Dixit}{{Dix18}{}{{}}{{}}}
\bibcite{Python}{{Fou18}{}{{}}{{}}}
\bibcite{Djangogirls}{{Dja18}{}{{}}{{}}}
\bibcite{Fiok}{{Fio14}{}{{}}{{}}}
\bibcite{Schlede}{{FMS17}{}{{}}{{}}}
\bibcite{Django-4}{{Fou18a}{}{{}}{{}}}
\bibcite{Django}{{Fou18b}{}{{}}{{}}}
\bibcite{Django-2}{{Fou18c}{}{{}}{{}}}
\bibcite{Django-3}{{Fou18d}{}{{}}{{}}}
\@writefile{toc}{\contentsline {chapter}{Referenzen}{26}{chapter*.16}}
\bibcite{Python}{{Fou18e}{}{{}}{{}}}
\bibcite{Gaynor}{{Gay10}{}{{}}{{}}}
\bibcite{Herzog}{{Her16}{}{{}}{{}}}
\bibcite{King}{{Kin17}{}{{}}{{}}}
\bibcite{Leipner}{{Lei13}{}{{}}{{}}}
\bibcite{Microsoft}{{Mic18}{}{{}}{{}}}
\bibcite{Ndukwe}{{Ndu17}{}{{}}{{}}}
\bibcite{Ong}{{Ong18}{}{{}}{{}}}
\bibcite{Otto}{{Ott11}{}{{}}{{}}}
\bibcite{Otto-2}{{Ott12}{}{{}}{{}}}
\bibcite{Shabda}{{Sha09}{}{{}}{{}}}
\bibcite{Shelest}{{She09}{}{{}}{{}}}
\bibcite{Solutions}{{Sol17}{}{{}}{{}}}
\bibcite{Timm}{{Tim15}{}{{}}{{}}}
\bibcite{Weigend}{{Wei17}{}{{}}{{}}}
\providecommand\NAT@force@numbers{}\NAT@force@numbers
\@writefile{toc}{\contentsline {chapter}{Referenzen}{19}{chapter*.11}}
@@ -1,4 +1,22 @@
\begin{thebibliography}{Ndu17}
\begin{thebibliography}{Fou18d}
\bibitem[BA11]{Bootstrap}
Twitter~Inc Bootstrap~Authors.
\newblock Bootstrap repository.
\newblock 2011.
\newblock https://github.com/twbs/bootstrap.
\bibitem[Com18]{Computer}
The Computer~Language Company.
\newblock Definition of: user permissions.
\newblock 2018.
\newblock https://www.pcmag.com/encyclopedia/term/58231/user-permissions.
\bibitem[Coo10]{Oracle}
Oracle Cooperation.
\newblock About ldap.
\newblock 2010.
\newblock https://docs.oracle.com/cd/E19182-01/820-6573/6nht2e5a4/index.html.
\bibitem[Dix18]{Dixit}
Chitrank Dixit.
@@ -7,7 +25,53 @@ Chitrank Dixit.
\newblock
https://www.datacamp.com/community/tutorials/pep8-tutorial-python-code.
\bibitem[Fou18]{Python}
\bibitem[Dja18]{Djangogirls}
Djangogirls.
\newblock Creating a blog post model.
\newblock 2018.
\newblock https://tutorial.djangogirls.org/en/django\_models/.
\bibitem[Fio14]{Fiok}
Marzena Fiok.
\newblock E-mail-flut sorgt für kostenlawine.
\newblock 2014.
\newblock
https://www.tecchannel.de/a/e-mail-flut-sorgt-fuer-kostenlawine,402338,3.
\bibitem[FMS17]{Schlede}
Andreas~Donner Frank-Michael~Schlede, Thomas~Bär.
\newblock Was ist ldap (lightweight directory access protocol)?
\newblock 2017.
\newblock
https://www.ip-insider.de/was-ist-ldap-lightweight-directory-access-protocol-a-581204/.
\bibitem[Fou18a]{Django-4}
Django~Software Foundation.
\newblock Cross site request forgery protection¶.
\newblock 2018.
\newblock https://docs.djangoproject.com/en/dev/ref/csrf/.
\bibitem[Fou18b]{Django}
Django~Software Foundation.
\newblock django.contrib.auth, user model.
\newblock 2018.
\newblock https://docs.djangoproject.com/en/2.1/ref/contrib/auth/.
\bibitem[Fou18c]{Django-2}
Django~Software Foundation.
\newblock Modelforms - the save() methode.
\newblock 2018.
\newblock
https://docs.djangoproject.com/en/dev/topics/forms/modelforms/\#the-save-method.
\bibitem[Fou18d]{Django-3}
Django~Software Foundation.
\newblock Working with forms.
\newblock 2018.
\newblock
https://docs.djangoproject.com/en/dev/topics/forms/\#using-a-form-in-a-view.
\bibitem[Fou18e]{Python}
Python~Software Foundation.
\newblock Virtual environments and packages.
\newblock 2018.
@@ -42,6 +106,12 @@ Ingo Leipner.
\newblock
http://www.mz-web.de/wirtschaft/e-mail-flut-mails-bearbeiten-kommunikation-stress-zeit-sparen.
\bibitem[Mic18]{Microsoft}
Microsoft.
\newblock Extensions for the visual studio family of products.
\newblock 2018.
\newblock https://marketplace.visualstudio.com/.
\bibitem[Ndu17]{Ndukwe}
Nnenna Ndukwe.
\newblock Python is the back-end programming language of the future and
@@ -50,6 +120,32 @@ Nnenna Ndukwe.
\newblock
https://medium.com/@nnennahacks/https-medium-com-nnennandukwe-python-is-the-back-end-programming-language-of-the-future-heres-why.
\bibitem[Ong18]{Ong}
Selwin Ong.
\newblock django-post\_office git repository.
\newblock 2018.
\newblock https://github.com/ui/django-post\_office/blob/master/AUTHORS.rst.
\bibitem[Ott11]{Otto}
Mark Otto.
\newblock Bootstrap from twitter.
\newblock 2011.
\newblock
https://blog.twitter.com/developer/en\_us/a/2011/bootstrap-twitter.html.
\bibitem[Ott12]{Otto-2}
Mark Otto.
\newblock Say hello to bootstrap 2.0.
\newblock 2012.
\newblock
https://web.archive.org/web/20120203191214/https://dev.twitter.com/blog/say-hello-to-bootstrap-2.
\bibitem[Sha09]{Shabda}
Shabda.
\newblock Understanding decorators.
\newblock 2009.
\newblock https://www.agiliq.com/blog/2009/06/understanding-decorators/.
\bibitem[She09]{Shelest}
Alexy Shelest.
\newblock Model view controller, model view presenter, and model view viewmodel
@@ -58,4 +154,23 @@ Alexy Shelest.
\newblock
https://www.codeproject.com/Articles/42830/Model-View-Controller-Model-View-Presenter-and-Mod.
\bibitem[Sol17]{Solutions}
Mindfire Solutions.
\newblock Advantages and disadvantages of python programming language.
\newblock 2017.
\newblock
https://medium.com/@mindfiresolutions.usa/advantages-and-disadvantages-of-python-programming-language-fd0b394f2121.
\bibitem[Tim15]{Timm}
Damon Timm.
\newblock django-hitcount documentation.
\newblock 2015.
\newblock https://django-hitcount.readthedocs.io/en/latest/overview.html.
\bibitem[Wei17]{Weigend}
Michael Weigend.
\newblock {\em Python GE-PACKT}.
\newblock 2017.
\newblock Kapitel 23.1.
\end{thebibliography}
@@ -11,53 +11,75 @@ A level-1 auxiliary file: chapters/ausblick.aux
A level-1 auxiliary file: chapters/fazit.aux
The style file: alpha.bst
Database file #1: ../references/References_2.bib
Repeated entry---line 78 of file ../references/References_2.bib
: @article{Ong
: ,
I'm skipping whatever remains of this entry
Warning--empty journal in Bootstrap
Warning--empty journal in Computer
Warning--empty journal in Oracle
Warning--empty journal in Dixit
Warning--empty journal in Djangogirls
Warning--empty journal in Fiok
Warning--empty journal in Schlede
Warning--empty journal in Django-4
Warning--empty journal in Django
Warning--empty journal in Django-2
Warning--empty journal in Django-3
Warning--empty journal in Python
Warning--empty journal in Gaynor
Warning--empty journal in Herzog
Warning--empty journal in King
Warning--empty journal in Leipner
Warning--empty journal in Microsoft
Warning--empty journal in Ndukwe
Warning--empty journal in Ong
Warning--empty journal in Otto
Warning--empty journal in Otto-2
Warning--empty journal in Shabda
Warning--empty journal in Shelest
You've used 8 entries,
Warning--empty journal in Solutions
Warning--empty journal in Timm
Warning--empty publisher in Weigend
You've used 26 entries,
2543 wiz_defined-function locations,
611 strings with 6085 characters,
and the built_in function-call counts, 2196 in all, are:
= -- 216
> -- 64
< -- 8
+ -- 16
- -- 16
* -- 106
:= -- 390
add.period$ -- 32
call.type$ -- 8
change.case$ -- 40
chr.to.int$ -- 8
cite$ -- 16
duplicate$ -- 112
empty$ -- 161
format.name$ -- 32
if$ -- 426
int.to.chr$ -- 1
698 strings with 8272 characters,
and the built_in function-call counts, 7085 in all, are:
= -- 699
> -- 208
< -- 26
+ -- 56
- -- 52
* -- 342
:= -- 1240
add.period$ -- 104
call.type$ -- 26
change.case$ -- 129
chr.to.int$ -- 22
cite$ -- 52
duplicate$ -- 366
empty$ -- 526
format.name$ -- 102
if$ -- 1383
int.to.chr$ -- 5
int.to.str$ -- 0
missing$ -- 8
newline$ -- 51
num.names$ -- 24
pop$ -- 48
missing$ -- 27
newline$ -- 159
num.names$ -- 78
pop$ -- 157
preamble$ -- 1
purify$ -- 48
purify$ -- 156
quote$ -- 0
skip$ -- 88
skip$ -- 282
stack$ -- 0
substring$ -- 56
swap$ -- 0
text.length$ -- 8
text.prefix$ -- 8
substring$ -- 182
swap$ -- 1
text.length$ -- 26
text.prefix$ -- 24
top$ -- 0
type$ -- 64
warning$ -- 8
while$ -- 16
width$ -- 10
write$ -- 106
(There were 8 warnings)
type$ -- 204
warning$ -- 26
while$ -- 52
width$ -- 32
write$ -- 340
(There was 1 error message)
@@ -2,12 +2,17 @@
\babel@toc {german}{}
\addvspace {10\p@ }
\addvspace {10\p@ }
\contentsline {figure}{\numberline {2.1}{\ignorespaces Vereinfachter MVP\relax }}{6}{figure.caption.5}
\contentsline {figure}{\numberline {2.2}{\ignorespaces Request-Response-Kreislauf des Django Frameworks\relax }}{7}{figure.caption.6}
\contentsline {figure}{\numberline {2.1}{\ignorespaces Vereinfachter MVP ([She09])\relax }}{6}{figure.caption.5}
\contentsline {figure}{\numberline {2.2}{\ignorespaces Request-Response-Kreislauf des Django Frameworks ([Nev15])\relax }}{7}{figure.caption.6}
\contentsline {figure}{\numberline {2.3}{\ignorespaces Erstellen der virtuelle Umgebung im Terminal\relax }}{8}{figure.caption.7}
\contentsline {figure}{\numberline {2.4}{\ignorespaces Beispiel eines LDAP-Trees\relax }}{9}{figure.caption.8}
\contentsline {figure}{\numberline {2.5}{\ignorespaces Einbindung von Bootstrap in einer HTML-Datei\relax }}{11}{figure.caption.9}
\contentsline {figure}{\numberline {2.6}{\ignorespaces Bootstrap-Klassen in HTML-Tag\relax }}{12}{figure.caption.10}
\contentsline {figure}{\numberline {2.4}{\ignorespaces Beispiel eines LDAP-Trees ([Orc10])\relax }}{9}{figure.caption.8}
\contentsline {figure}{\numberline {2.5}{\ignorespaces Einbindung von Bootstrap in einer HTML-Datei\relax }}{12}{figure.caption.9}
\contentsline {figure}{\numberline {2.6}{\ignorespaces Bootstrap-Klassen in HTML-Tag\relax }}{13}{figure.caption.10}
\addvspace {10\p@ }
\contentsline {figure}{\numberline {3.1}{\ignorespaces Forschungsdesign\relax }}{15}{figure.caption.11}
\contentsline {figure}{\numberline {3.2}{\ignorespaces CustomUserModel in models.py\relax }}{17}{figure.caption.12}
\contentsline {figure}{\numberline {3.3}{\ignorespaces Datenmodellierung von User und Post\relax }}{18}{figure.caption.13}
\contentsline {figure}{\numberline {3.4}{\ignorespaces User Stories\relax }}{20}{figure.caption.14}
\contentsline {figure}{\numberline {3.5}{\ignorespaces Funktion post\_edit, Auszug aus views.py.\relax }}{22}{figure.caption.15}
\addvspace {10\p@ }
\addvspace {10\p@ }
File diff suppressed because it is too large. Load diff
@@ -5,19 +5,27 @@
\BOOKMARK [1][-]{section.1.2}{Ziel\040der\040Arbeit}{chapter.1}% 5
\BOOKMARK [0][-]{chapter.2}{Framework}{}% 6
\BOOKMARK [1][-]{section.2.1}{Django}{chapter.2}% 7
\BOOKMARK [2][-]{subsection.2.1.1}{Besonderheiten}{section.2.1}% 8
\BOOKMARK [1][-]{section.2.2}{Erweiterungen}{chapter.2}% 9
\BOOKMARK [2][-]{subsection.2.2.1}{Taggable-Manager}{section.2.2}% 10
\BOOKMARK [1][-]{section.2.3}{Bootstrap}{chapter.2}% 11
\BOOKMARK [0][-]{chapter.3}{Prototyp}{}% 12
\BOOKMARK [1][-]{section.3.1}{Organisation}{chapter.3}% 13
\BOOKMARK [2][-]{subsection.3.1.1}{Verwaltung\040im\040Administrator-Backend}{section.3.1}% 14
\BOOKMARK [2][-]{subsection.3.1.2}{Berechtigung\040der\040User}{section.3.1}% 15
\BOOKMARK [1][-]{section.3.2}{Funktion}{chapter.3}% 16
\BOOKMARK [2][-]{subsection.3.2.1}{Abonnieren}{section.3.2}% 17
\BOOKMARK [2][-]{subsection.3.2.2}{Filtern}{section.3.2}% 18
\BOOKMARK [2][-]{subsection.3.2.3}{Benachrichtigung}{section.3.2}% 19
\BOOKMARK [0][-]{chapter.4}{Ergebnis}{}% 20
\BOOKMARK [1][-]{subsection.4.0.1}{Evaluierung}{chapter.4}% 21
\BOOKMARK [0][-]{chapter.5}{Zusammenfassung\040und\040Ausblick}{}% 22
\BOOKMARK [0][-]{chapter*.11}{Referenzen}{}% 23
\BOOKMARK [2][-]{subsection.2.1.1}{Besonderheiten\040Django's}{section.2.1}% 8
\BOOKMARK [2][-]{subsection.2.1.2}{Virtuelle\040Umgebung}{section.2.1}% 9
\BOOKMARK [2][-]{subsection.2.1.3}{Lightweight\040Directory\040Access\040Protocol}{section.2.1}% 10
\BOOKMARK [2][-]{subsection.2.1.4}{Sicherheit}{section.2.1}% 11
\BOOKMARK [1][-]{section.2.2}{Erweiterungen}{chapter.2}% 12
\BOOKMARK [2][-]{subsection.2.2.1}{Taggable-Manager}{section.2.2}% 13
\BOOKMARK [2][-]{subsection.2.2.2}{Hilfsbibliotheken}{section.2.2}% 14
\BOOKMARK [1][-]{section.2.3}{Bootstrap}{chapter.2}% 15
\BOOKMARK [1][-]{section.2.4}{Cron}{chapter.2}% 16
\BOOKMARK [0][-]{chapter.3}{Prototyp}{}% 17
\BOOKMARK [1][-]{section.3.1}{Forschungsdesign}{chapter.3}% 18
\BOOKMARK [1][-]{section.3.2}{Organisation}{chapter.3}% 19
\BOOKMARK [2][-]{subsection.3.2.1}{Datenmodellierung}{section.3.2}% 20
\BOOKMARK [2][-]{subsection.3.2.2}{Verwaltung\040im\040Administrator-Back-end}{section.3.2}% 21
\BOOKMARK [2][-]{subsection.3.2.3}{Berechtigung\040der\040User}{section.3.2}% 22
\BOOKMARK [1][-]{section.3.3}{Funktionen}{chapter.3}% 23
\BOOKMARK [2][-]{subsection.3.3.1}{Verwalten}{section.3.3}% 24
\BOOKMARK [2][-]{subsection.3.3.2}{Abonnieren}{section.3.3}% 25
\BOOKMARK [2][-]{subsection.3.3.3}{Filtern}{section.3.3}% 26
\BOOKMARK [2][-]{subsection.3.3.4}{Benachrichtigung}{section.3.3}% 27
\BOOKMARK [0][-]{chapter.4}{Ergebnis}{}% 28
\BOOKMARK [1][-]{subsection.4.0.1}{Evaluierung}{chapter.4}% 29
\BOOKMARK [0][-]{chapter.5}{Zusammenfassung\040und\040Ausblick}{}% 30
\BOOKMARK [0][-]{chapter*.16}{Referenzen}{}% 31
@@ -1,25 +1,33 @@
\babel@toc {german}{}
\babel@toc {german}{}
\contentsline {chapter}{Abstract}{i}{figure.caption.1}
\contentsline {chapter}{Abstract}{ii}{figure.caption.1}
\contentsline {chapter}{Abbildungsverzeichnis}{1}{chapter*.4}
\contentsline {chapter}{\numberline {1}Einleitung}{3}{chapter.1}
\contentsline {section}{\numberline {1.1}Ausgangssituation}{3}{section.1.1}
\contentsline {section}{\numberline {1.2}Ziel der Arbeit}{4}{section.1.2}
\contentsline {chapter}{\numberline {1}Einleitung}{2}{chapter.1}
\contentsline {section}{\numberline {1.1}Ausgangssituation}{2}{section.1.1}
\contentsline {section}{\numberline {1.2}Ziel der Arbeit}{3}{section.1.2}
\contentsline {chapter}{\numberline {2}Framework}{5}{chapter.2}
\contentsline {section}{\numberline {2.1}Django}{5}{section.2.1}
\contentsline {subsection}{\numberline {2.1.1}Besonderheiten}{6}{subsection.2.1.1}
\contentsline {section}{\numberline {2.2}Erweiterungen}{8}{section.2.2}
\contentsline {subsection}{\numberline {2.1.1}Besonderheiten Django's}{7}{subsection.2.1.1}
\contentsline {subsection}{\numberline {2.1.2}Virtuelle Umgebung}{8}{subsection.2.1.2}
\contentsline {subsection}{\numberline {2.1.3}Lightweight Directory Access Protocol}{8}{subsection.2.1.3}
\contentsline {subsection}{\numberline {2.1.4}Sicherheit}{9}{subsection.2.1.4}
\contentsline {section}{\numberline {2.2}Erweiterungen}{10}{section.2.2}
\contentsline {subsection}{\numberline {2.2.1}Taggable-Manager}{10}{subsection.2.2.1}
\contentsline {section}{\numberline {2.3}Bootstrap}{11}{section.2.3}
\contentsline {chapter}{\numberline {3}Prototyp}{13}{chapter.3}
\contentsline {section}{\numberline {3.1}Organisation}{13}{section.3.1}
\contentsline {subsection}{\numberline {3.1.1}Verwaltung im Administrator-Backend}{13}{subsection.3.1.1}
\contentsline {subsection}{\numberline {3.1.2}Berechtigung der User}{13}{subsection.3.1.2}
\contentsline {section}{\numberline {3.2}Funktion}{13}{section.3.2}
\contentsline {subsection}{\numberline {3.2.1}Abonnieren}{13}{subsection.3.2.1}
\contentsline {subsection}{\numberline {3.2.2}Filtern}{13}{subsection.3.2.2}
\contentsline {subsection}{\numberline {3.2.3}Benachrichtigung}{14}{subsection.3.2.3}
\contentsline {chapter}{\numberline {4}Ergebnis}{15}{chapter.4}
\contentsline {subsection}{\numberline {4.0.1}Evaluierung}{15}{subsection.4.0.1}
\contentsline {chapter}{\numberline {5}Zusammenfassung und Ausblick}{17}{chapter.5}
\contentsline {chapter}{Referenzen}{19}{chapter*.11}
\contentsline {subsection}{\numberline {2.2.2}Hilfsbibliotheken}{11}{subsection.2.2.2}
\contentsline {section}{\numberline {2.3}Bootstrap}{12}{section.2.3}
\contentsline {section}{\numberline {2.4}Cron}{13}{section.2.4}
\contentsline {chapter}{\numberline {3}Prototyp}{14}{chapter.3}
\contentsline {section}{\numberline {3.1}Forschungsdesign}{14}{section.3.1}
\contentsline {section}{\numberline {3.2}Organisation}{15}{section.3.2}
\contentsline {subsection}{\numberline {3.2.1}Datenmodellierung}{16}{subsection.3.2.1}
\contentsline {subsection}{\numberline {3.2.2}Verwaltung im Administrator-Back-end}{18}{subsection.3.2.2}
\contentsline {subsection}{\numberline {3.2.3}Berechtigung der User}{19}{subsection.3.2.3}
\contentsline {section}{\numberline {3.3}Funktionen}{20}{section.3.3}
\contentsline {subsection}{\numberline {3.3.1}Verwalten}{20}{subsection.3.3.1}
\contentsline {subsection}{\numberline {3.3.2}Abonnieren}{22}{subsection.3.3.2}
\contentsline {subsection}{\numberline {3.3.3}Filtern}{22}{subsection.3.3.3}
\contentsline {subsection}{\numberline {3.3.4}Benachrichtigung}{23}{subsection.3.3.4}
\contentsline {chapter}{\numberline {4}Ergebnis}{24}{chapter.4}
\contentsline {subsection}{\numberline {4.0.1}Evaluierung}{24}{subsection.4.0.1}
\contentsline {chapter}{\numberline {5}Zusammenfassung und Ausblick}{25}{chapter.5}
\contentsline {chapter}{Referenzen}{26}{chapter*.16}
@@ -1,7 +1,7 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\@setckpt{chapters/ausblick}{
\setcounter{page}{16}
\setcounter{page}{25}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
@@ -25,10 +25,11 @@
\setcounter{subfigure}{0}
\setcounter{subtable}{0}
\setcounter{r@tfl@t}{0}
\setcounter{AM@survey}{0}
\setcounter{Item}{0}
\setcounter{Hfootnote}{0}
\setcounter{Hy@AnnotLevel}{0}
\setcounter{bookmark@seq@number}{21}
\setcounter{bookmark@seq@number}{29}
\setcounter{NAT@ctr}{0}
\setcounter{lstlisting}{0}
\setcounter{section@level}{0}
@@ -1,10 +1,10 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {chapter}{\numberline {1}Einleitung}{3}{chapter.1}}
\@writefile{toc}{\contentsline {chapter}{\numberline {1}Einleitung}{2}{chapter.1}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {1.1}Ausgangssituation}{3}{section.1.1}}
\@writefile{toc}{\contentsline {section}{\numberline {1.2}Ziel der Arbeit}{4}{section.1.2}}
\@writefile{toc}{\contentsline {section}{\numberline {1.1}Ausgangssituation}{2}{section.1.1}}
\@writefile{toc}{\contentsline {section}{\numberline {1.2}Ziel der Arbeit}{3}{section.1.2}}
\@setckpt{chapters/einleitung}{
\setcounter{page}{5}
\setcounter{equation}{0}
@@ -30,6 +30,7 @@
\setcounter{subfigure}{0}
\setcounter{subtable}{0}
\setcounter{r@tfl@t}{0}
\setcounter{AM@survey}{0}
\setcounter{Item}{0}
\setcounter{Hfootnote}{0}
\setcounter{Hy@AnnotLevel}{0}
@@ -1,12 +1,12 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {chapter}{\numberline {4}Ergebnis}{15}{chapter.4}}
\@writefile{toc}{\contentsline {chapter}{\numberline {4}Ergebnis}{24}{chapter.4}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{ch:ergebnis}{{4}{15}{Ergebnis}{chapter.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.0.1}Evaluierung}{15}{subsection.4.0.1}}
\newlabel{ch:ergebnis}{{4}{24}{Ergebnis}{chapter.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.0.1}Evaluierung}{24}{subsection.4.0.1}}
\@setckpt{chapters/ergebnis}{
\setcounter{page}{16}
\setcounter{page}{25}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
@@ -30,10 +30,11 @@
\setcounter{subfigure}{0}
\setcounter{subtable}{0}
\setcounter{r@tfl@t}{0}
\setcounter{AM@survey}{0}
\setcounter{Item}{0}
\setcounter{Hfootnote}{0}
\setcounter{Hy@AnnotLevel}{0}
\setcounter{bookmark@seq@number}{21}
\setcounter{bookmark@seq@number}{29}
\setcounter{NAT@ctr}{0}
\setcounter{lstlisting}{0}
\setcounter{section@level}{0}
@@ -1,11 +1,11 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {chapter}{\numberline {5}Zusammenfassung und Ausblick}{17}{chapter.5}}
\@writefile{toc}{\contentsline {chapter}{\numberline {5}Zusammenfassung und Ausblick}{25}{chapter.5}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{ch:zusammenfassung}{{5}{17}{Zusammenfassung und Ausblick}{chapter.5}{}}
\newlabel{ch:zusammenfassung}{{5}{25}{Zusammenfassung und Ausblick}{chapter.5}{}}
\@setckpt{chapters/fazit}{
\setcounter{page}{18}
\setcounter{page}{26}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
@@ -29,10 +29,11 @@
\setcounter{subfigure}{0}
\setcounter{subtable}{0}
\setcounter{r@tfl@t}{0}
\setcounter{AM@survey}{0}
\setcounter{Item}{0}
\setcounter{Hfootnote}{0}
\setcounter{Hy@AnnotLevel}{0}
\setcounter{bookmark@seq@number}{22}
\setcounter{bookmark@seq@number}{30}
\setcounter{NAT@ctr}{0}
\setcounter{lstlisting}{0}
\setcounter{section@level}{0}
@@ -5,18 +5,23 @@
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{ch:framework}{{2}{5}{Framework}{chapter.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2.1}Django}{5}{section.2.1}}
\@writefile{lof}{\contentsline {figure}{\numberline {2.1}{\ignorespaces Vereinfachter MVP\relax }}{6}{figure.caption.5}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.1}Besonderheiten}{6}{subsection.2.1.1}}
\@writefile{lof}{\contentsline {figure}{\numberline {2.2}{\ignorespaces Request-Response-Kreislauf des Django Frameworks\relax }}{7}{figure.caption.6}}
\@writefile{toc}{\contentsline {section}{\numberline {2.2}Erweiterungen}{8}{section.2.2}}
\@writefile{lof}{\contentsline {figure}{\numberline {2.1}{\ignorespaces Vereinfachter MVP ([She09])\relax }}{6}{figure.caption.5}}
\@writefile{lof}{\contentsline {figure}{\numberline {2.2}{\ignorespaces Request-Response-Kreislauf des Django Frameworks ([Nev15])\relax }}{7}{figure.caption.6}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.1}Besonderheiten Django's}{7}{subsection.2.1.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.2}Virtuelle Umgebung}{8}{subsection.2.1.2}}
\@writefile{lof}{\contentsline {figure}{\numberline {2.3}{\ignorespaces Erstellen der virtuelle Umgebung im Terminal\relax }}{8}{figure.caption.7}}
\@writefile{lof}{\contentsline {figure}{\numberline {2.4}{\ignorespaces Beispiel eines LDAP-Trees\relax }}{9}{figure.caption.8}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.3}Lightweight Directory Access Protocol}{8}{subsection.2.1.3}}
\@writefile{lof}{\contentsline {figure}{\numberline {2.4}{\ignorespaces Beispiel eines LDAP-Trees ([Orc10])\relax }}{9}{figure.caption.8}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.1.4}Sicherheit}{9}{subsection.2.1.4}}
\@writefile{toc}{\contentsline {section}{\numberline {2.2}Erweiterungen}{10}{section.2.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}Taggable-Manager}{10}{subsection.2.2.1}}
\@writefile{toc}{\contentsline {section}{\numberline {2.3}Bootstrap}{11}{section.2.3}}
\@writefile{lof}{\contentsline {figure}{\numberline {2.5}{\ignorespaces Einbindung von Bootstrap in einer HTML-Datei\relax }}{11}{figure.caption.9}}
\@writefile{lof}{\contentsline {figure}{\numberline {2.6}{\ignorespaces Bootstrap-Klassen in HTML-Tag\relax }}{12}{figure.caption.10}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.2}Hilfsbibliotheken}{11}{subsection.2.2.2}}
\@writefile{toc}{\contentsline {section}{\numberline {2.3}Bootstrap}{12}{section.2.3}}
\@writefile{lof}{\contentsline {figure}{\numberline {2.5}{\ignorespaces Einbindung von Bootstrap in einer HTML-Datei\relax }}{12}{figure.caption.9}}
\@writefile{lof}{\contentsline {figure}{\numberline {2.6}{\ignorespaces Bootstrap-Klassen in HTML-Tag\relax }}{13}{figure.caption.10}}
\@writefile{toc}{\contentsline {section}{\numberline {2.4}Cron}{13}{section.2.4}}
\@setckpt{chapters/framework}{
\setcounter{page}{13}
\setcounter{page}{14}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
@@ -26,7 +31,7 @@
\setcounter{mpfootnote}{0}
\setcounter{part}{0}
\setcounter{chapter}{2}
\setcounter{section}{3}
\setcounter{section}{4}
\setcounter{subsection}{0}
\setcounter{subsubsection}{0}
\setcounter{paragraph}{0}
@@ -40,10 +45,11 @@
\setcounter{subfigure}{0}
\setcounter{subtable}{0}
\setcounter{r@tfl@t}{0}
\setcounter{AM@survey}{0}
\setcounter{Item}{0}
\setcounter{Hfootnote}{0}
\setcounter{Hy@AnnotLevel}{0}
\setcounter{bookmark@seq@number}{11}
\setcounter{bookmark@seq@number}{16}
\setcounter{NAT@ctr}{0}
\setcounter{lstlisting}{0}
\setcounter{section@level}{0}
@@ -1,18 +1,26 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\contentsline {chapter}{\numberline {3}Prototyp}{13}{chapter.3}}
\@writefile{toc}{\contentsline {chapter}{\numberline {3}Prototyp}{14}{chapter.3}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{ch:prototyp}{{3}{13}{Prototyp}{chapter.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.1}Organisation}{13}{section.3.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.1}Verwaltung im Administrator-Backend}{13}{subsection.3.1.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.2}Berechtigung der User}{13}{subsection.3.1.2}}
\@writefile{toc}{\contentsline {section}{\numberline {3.2}Funktion}{13}{section.3.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}Abonnieren}{13}{subsection.3.2.1}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Filtern}{13}{subsection.3.2.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3}Benachrichtigung}{14}{subsection.3.2.3}}
\newlabel{ch:prototyp}{{3}{14}{Prototyp}{chapter.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.1}Forschungsdesign}{14}{section.3.1}}
\@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces Forschungsdesign\relax }}{15}{figure.caption.11}}
\@writefile{toc}{\contentsline {section}{\numberline {3.2}Organisation}{15}{section.3.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}Datenmodellierung}{16}{subsection.3.2.1}}
\@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces CustomUserModel in models.py\relax }}{17}{figure.caption.12}}
\@writefile{lof}{\contentsline {figure}{\numberline {3.3}{\ignorespaces Datenmodellierung von User und Post\relax }}{18}{figure.caption.13}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Verwaltung im Administrator-Back-end}{18}{subsection.3.2.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3}Berechtigung der User}{19}{subsection.3.2.3}}
\@writefile{toc}{\contentsline {section}{\numberline {3.3}Funktionen}{20}{section.3.3}}
\@writefile{lof}{\contentsline {figure}{\numberline {3.4}{\ignorespaces User Stories\relax }}{20}{figure.caption.14}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.1}Verwalten}{20}{subsection.3.3.1}}
\@writefile{lof}{\contentsline {figure}{\numberline {3.5}{\ignorespaces Funktion post\_edit, Auszug aus views.py.\relax }}{22}{figure.caption.15}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.2}Abonnieren}{22}{subsection.3.3.2}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.3}Filtern}{22}{subsection.3.3.3}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.4}Benachrichtigung}{23}{subsection.3.3.4}}
\@setckpt{chapters/prototyp}{
\setcounter{page}{15}
\setcounter{page}{24}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
@@ -22,12 +30,12 @@
\setcounter{mpfootnote}{0}
\setcounter{part}{0}
\setcounter{chapter}{3}
\setcounter{section}{2}
\setcounter{subsection}{3}
\setcounter{section}{3}
\setcounter{subsection}{4}
\setcounter{subsubsection}{0}
\setcounter{paragraph}{0}
\setcounter{subparagraph}{0}
\setcounter{figure}{0}
\setcounter{figure}{5}
\setcounter{table}{0}
\setcounter{float@type}{8}
\setcounter{parentequation}{0}
@@ -36,10 +44,11 @@
\setcounter{subfigure}{0}
\setcounter{subtable}{0}
\setcounter{r@tfl@t}{0}
\setcounter{AM@survey}{0}
\setcounter{Item}{0}
\setcounter{Hfootnote}{0}
\setcounter{Hy@AnnotLevel}{0}
\setcounter{bookmark@seq@number}{19}
\setcounter{bookmark@seq@number}{27}
\setcounter{NAT@ctr}{0}
\setcounter{lstlisting}{0}
\setcounter{section@level}{0}
@@ -24,6 +24,7 @@
\setcounter{subfigure}{0}
\setcounter{subtable}{0}
\setcounter{r@tfl@t}{0}
\setcounter{AM@survey}{0}
\setcounter{Item}{0}
\setcounter{Hfootnote}{0}
\setcounter{Hy@AnnotLevel}{0}
@@ -1,7 +1,7 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\@setckpt{titlepage/titlepage}{
\setcounter{page}{3}
\setcounter{page}{1}
\setcounter{equation}{0}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
@@ -25,6 +25,7 @@
\setcounter{subfigure}{0}
\setcounter{subtable}{0}
\setcounter{r@tfl@t}{0}
\setcounter{AM@survey}{0}
\setcounter{Item}{0}
\setcounter{Hfootnote}{0}
\setcounter{Hy@AnnotLevel}{0}
@@ -1,5 +1,5 @@
\RequirePackage[ngerman=ngerman-x-latest]{hyphsubst}
\documentclass[12pt,a4paper,openright,twoside]{report}
\documentclass[12pt,a4paper,openright,oneside]{report}
%------------------------------------------------------------------------------
% preambule
\include{preambule/thesis.preamble}
@@ -33,13 +33,14 @@
\setcounter{page}{1}
\pagenumbering{roman}
%------------------------------------------------------------------------------
% dedication, acknowledgments and quotes
\includepdf{AcknowledgmentsDedicationSentence/erklaerung-fertig.pdf}
\clearpage{\thispagestyle{empty}}
%------------------------------------------------------------------------------
% abstract
\clearpage{\thispagestyle{empty}}
\include{abstract/abstract}
%------------------------------------------------------------------------------
% dedication, acknowledgments and quotes
%\include{AcknowledgmentsDedicationSentence/dedication}
%\clearpage{\thispagestyle{empty}}
%\include{AcknowledgmentsDedicationSentence/sentence}
%\clearpage{\thispagestyle{empty}}
%\include{AcknowledgmentsDedicationSentence/acknowledgements}
@@ -1,13 +1,20 @@
\chapter{Einleitung}
\textcolor{red}{Die vorliegende Arbeit beschäftigt sich mit der wachsenden E-Mail-Flut in den Postfächern der Studierenden und wie man diese reduzieren kann.}
In der Vergangenheit hat sich gezeigt, dass das Versenden von Informationen über elektronische Post nicht nur Vorteile mit sich bringt. Wie der Spezialist für Gesundheitsprozessberatung in einem Bericht der Mitteldeutschen Zeitung erwähnt, \glqq macht es die stets wachsende E-Mail-Menge unmöglich sich vernünftig mit den Informationen zu befassen"(vgl. [Ver13]). Nicht nur am Arbeitsplatz, sondern auch in Hochschulen wird Gebrauch gemacht, weitere Empfänger oder sogar ganze Verteiler mit in die Kopie einer E-Mail zu integrieren. Hierdurch steigen die irrelevanten Informationen unkontrollierbar schnell an. Infolgedessen, nimmt der benötigte Speicheraufwand der zahlreichen kommerziellen, aber auch internen E-Mail-Dienste, enorm zu (vgl. [Fio14]). Das Reduzieren dieses Kommunikationswegs ist jedoch in vielen Fällen nicht möglich und Beschränkungen jeglicher Art werden als nicht sinnvoll erachtet.
Betrachtet man darüber hinaus den Lebenszyklus einer einzelnen E-Mail, wird deutlich, dass dieser nach dem Erstellen, Senden und Empfangen noch nicht abgeschlossen ist. Nachdem die Information vom Adressat geöffnet wurde, wird sie archiviert, muss aber jederzeit durch eine Suchabfrage sofort Angezeigt werden. Dies verdeutlicht den enormen Aufwand, welchen das Verwalten elektronischer Post mit sich bringt. Aufbauend auf dieser Problematik, wird folgend die Ausgangssituation der Arbeit erläutert.
Schon seit geraumer Zeit ist bekannt, dass das Versenden von Informationen über elektronische Post nicht nur Vorteile mit sich bringt. Wie der Spezialist für Gesundheitsprozessberatung in einem Bericht der Mitteldeutschen Zeitung erwähnt, \glqq macht es die stets wachsende E-Mail-Menge unmöglich sich vernünftig mit den Informationen zu befassen"([Ver13]). Nicht nur am Arbeitsplatz sondern auch in Hochschulen wird Gebrauch gemacht, weitere Empfänger oder sogar ganze Verteiler mit in die Kopie einer E-Mail zu integrieren. Um die Prioritäten der Informationen besser bilden zu können, sollen Studierende selbst entscheiden, welche Nachrichten relevant sind. Hierfür wird eine Social Media Plattform mit personalisierbarem Dashboard implementiert.
\section{Ausgangssituation}
Alle Informationen der Fakultät Elektrotechnik Feinwerktechnik Informationstechnik, kurz efi, werden über die globalen Verteiler des Hochschulinternen Postfaches versendet. Viele dieser Daten sind jedoch nur für eine geringe Schnittmenge der Empfänger relevant und lassen sich nur schwer priorisieren. Das ständig überlastete Postfach muss somit regelmä"sig gepflegt werden. Einen massiven Administrativen Aufwand bedeutet es, E-Mails zu filtern und nach persönlichem Ermessen zu verwalten.
Zudem leidet die Nachhaltigkeit der Informationen. Möchten die Empfänger ältere E-Mails abrufen, mussten diese meist schon entfernt werden um Platz für den neuen, eintreffenden E-Mail-Verkehr zu schaffen.
Diese Situation führt dazu, dass Empfänger die Informationen meist nicht lesen und sofort entfernen. Die Ersteller haben keinerlei Möglichkeiten zu überprüfen ob und wie viele Studierende und Dozenten eingehende Nachrichten öffnen und lesen.
Alle Informationen der Fakultät Elektrotechnik Feinwerktechnik Informationstechnik werden {\"u}ber die globalen Verteiler des Hochschulinternen Postfaches versendet. Viele dieser Daten sind jedoch nur fu{\"u}r eine geringe Schnittmenge der Empf{\"a}nger relevant und enthalten Mitteilungen oder Anhänge, die keinerlei Mehrwert aufweisen k{\"o}nnen. Dadurch ist das Postfach der Studierenden und Dozenten schnell überlastet und kann, ohne regelm{\"a}"sige Pflege, nicht in vollem Umfang genutzt werden. Zudem, lassen sich Informationen schwer priorisieren und der massive, administrative Aufwand für den Einzelnen E-Mails selbstständig zu filtern und nach persönlichem Ermessen zu Verwalten steht in keinem Verhältnis zum Mehrwert eines performanten, aufgeräumten Postfaches.
Die Nachhaltigkeit der Informationen kann meist nicht gewährleistet werden. Grund dafür ist der mangelnde Speicherplatz, verursacht durch die ankommende Nachrichtenflut. M{\"o}chten die Empf{\"a}nger, {\"a}ltere E-Mails abrufen, mussten diese meist schon entfernt werden um Platz f{\"u}r den neuen, eintreffenden E-Mail-Verkehr zu schaffen.
Dies verursacht das nicht Lesen der Informationen vom Empfänger und führt zum im schlechtesten Fall zum voreiligen Entfernen von relevanten Nachrichten.
Die Ersteller der Nachrichten haben keinerlei M{\"o}glichkeiten zu {\"u}berpr{\"u}fen ob und wie viele Studierende und Dozenten eingehende Nachrichten {\"o}ffnen und lesen. Eine solche Art der Transparenz ist jedoch hilfreich, um Informationen inhaltlich zu optimieren und Überschriften treffender zu formulieren.
Aus dieser Situation heraus, stellt sich folgende Forschungsfrage: \glqq Kann die E-Mail-Flut der Technischen Hochschule mit Hilfe einer Social Media Plattform gedrosselt und die Nachhaltigkeit der Informationen gedrosselt werden?"
\section{Ziel der Arbeit}
Ziel der Arbeit ist es, durch die Einbindung einer Social Media Plattform den Speicheraufwand des Hochschulpostfaches für Studierende der Efi-Fakultät zu reduzieren. Die Flut an E-Mails soll durch das Verwenden eines personalisierte Dashboard gedrosselt werden. Hierbei wird zunächst der Fokus auf die grundlegenden Funktionen der Website gelegt. Dazu gehört das Abonnieren, einpflegen von neuen und löschen von alten Nachrichten.
Zudem sollen die Autoren benachrichtigt werden, in welchem Umfang die hochgeladenen Informationen bereits abonniert und gelesen wurden.
Ziel der Arbeit ist es, durch die Einbindung einer Social Media Plattform in der bereits bestehenden Hochschulwebsite, den Speicheraufwand des Postfaches f{\"u}r Studierende der Fakultät zu reduzieren. Durch selbständiges Prüfen der Nachrichtenseite, nehmen die Zielgruppen Informationen bewusster war und können diese individuell an ihre aktuelle Situation anpassen. Das reduziert den administrativen Aufwand und verhindert Speicherengpässe im E-Mail-Postfach. Broadcast-Ähnliches Senden von Informationen, ist hierdurch nur noch in den seltensten Fällen nötig.
Der Schwerpunkt dieser Arbeit, liegt auf der prototypischen Umsetzung der Website-Erweiterung. Hierbei wird zunächst der Fokus auf die grundlegenden Funktionen gelegt. Dazu gehört das Abonnieren, das Einpflegen von neuen und das Löschen von alten Nachrichten. Um den Informationsfluss jedes Einzelnen nicht aus den Augen zu verlieren, soll in regelmä"sigen Abständen eine automatisierte E-Mail verschickt werden.
Zudem sollen die Autoren einsehen können, in welchem Umfang die veröffentlichten Informationen bereits gelesen wurden. Dadurch lässt sich, nach einem gewissen Zeitraum, feststellen, ob die Studierenden und Dozenten die Nachrichten für relevant erachten und die Plattform weiterhin als verlässliches Portal rentabel ist.
@@ -2,3 +2,16 @@
\label{ch:ergebnis}
\subsection{Evaluierung}
Eine weitere hilfreiche Erweiterung ist pylint. Das Tool sucht nicht nur nach Fehlern im Code, sondern versucht diesen sauber und einheitlich zu gestalten. Hierbei wird auf den Code-Standard PEP-8 geprüft [Dix18]. Die folgende Liste zeigt eine Kurzfassung der wichtigsten Regeln:
\begin{itemize}
\item Einrückung, meist 4 Leerzeichen
\item Maximale Zeichenanzahl pro Zeile
\item Zwei Leerzeile zwischen Klassen und Funktionen
\item Eine Leerzeile zwischen Methoden innerhalb einer Klasse
\item Leerzeichen in Ausdrücke und Anweisungen vermeiden
\item Die Reihenfolge der Importe: Standartbibliotheken, Drittanbieterbibliotheken, Lokale Anwendungen
\item Konventionen der Namensgebung von Funktionen, Modulen usw.
\end{itemize}
Natürlich sind dies Vorgaben, die eingehalten werden können, aber nicht notwendig sind um den Code fertig kompilieren und ausgeben zu lassen.
@@ -1,22 +1,21 @@
\chapter{Framework}
\label{ch:framework}
Um die Website-Erweiterung realisieren zu können, wird zunächst festgelegt welche Programmierschnittstellen verwendet werden. Im Web-Backend fällt die Wahl auf die objektorientierte Sprache Python, die ausschlie"slich Serverseitig anwendbar ist. Der Programmaufbau Pythons macht den Code leicht lesbar und der einfache Syntax ermöglicht einen strukturierte Implementierung der Website([Ndu17]). Die vielen abstrakten Datentypen, wie dynamische Arrays und Wörterbücher, sind gro"sflächig einsetzbar.
Ein entscheidender Vorteil hierbei ist das dazugehörige Framework Django, auf das im folgenden Kapitel genauer eingegangen wird.
Um die Website-Erweiterung realisieren zu können, wird zunächst festgelegt welche Programmierschnittstellen verwendet werden. Im Web-Backend fällt die Wahl auf die objektorientierte Sprache Python, die Serverseitig anwendbar ist. Der Programmaufbau Pythons macht den Code leicht lesbar und der einfache Syntax ermöglicht einen strukturierte Implementierung der Website(vgl. [Ndu17]). Durch den modularen Aufbau ist es selbst für unerfahrene Entwickler möglich die Sprache schnell zu erlernen. Darüber hinaus bringt Python verschiedene Web-Service Tools mit sich, die beim implementieren einer Website viel Zeit sparen und das Aneignen von komplexen Protokollen redundant machen (vgl. [Sol17]).
Das dazugehörige Framework Django reduziert den Entwicklungsaufwand eines Prototypen erheblich und ist daher als zielführendes Framework die beste Wahl
\section{Django}
Django ist ein Web-Framework, das auf einer Model-View-Presenter (MVP) Architektur basiert. Ähnlich wie der Model-View-Controller sind die Interaktionen zwischen Model und View die Auswahl und Ausführung von Befehlen und das Auslösen von Ereignissen (vgl. Abbildung 2.1). Da die View aber hier bereits den Gro"steil des Controllers übernimmt, ist der MVP eine Überarbeitung. Der Teil, der Elemente des Modells auswählt, Operationen durchführt und alle Ereignisse kapselt, ergibt die Presenter-Klasse([She09]). Durch die direkte Bindung von Daten und View, geregelt durch den Presenter, wird die Codemenge der Applikation stark reduziert.
Django ist ein Web-Framework, das eine schnelle, strukturierte Entwicklung ermöglicht und dabei ein einfaches Design beibehält. Der darin enthaltene Model-View-Presenter (MVP) kann, ähnlich wie der Model-View-Controller, die Interaktionen zwischen Model und View, die Auswahl und Ausführung von Befehlen und das Auslösen von Ereignissen steuern (vgl. Abbildung 2.1). Da die View aber hier bereits den Gro"steil des Controllers übernimmt, ist der MVP eine Überarbeitung. Der Teil, der Elemente des Modells auswählt, Operationen durchführt und alle Ereignisse kapselt, ergibt die Presenter-Klasse vgl. [She09]. Durch die direkte Bindung von Daten und View, geregelt durch den Presenter, wird die Codemenge der Applikation stark reduziert.
\begin{figure}[!h]
\centering
\includegraphics[width=0.5\textwidth]{figures/MVP}
\caption{Vereinfachter MVP}
\includegraphics[width=0.6\textwidth]{figures/MVP}
\caption{Vereinfachter MVP ([She09])}
\hfill
\end{figure}
Der Prozess vom Anfragen der URL über den Server, bis hin zur fertig gerenderten Website kann wie folgt vereinfacht darstellen. Der User gibt eine URL im Browser ein und sendet sie an den Web-Server.
Der Prozess vom Anfragen der URL über den Server, bis hin zur fertig gerenderten Website kann wie folgt vereinfacht dargestellt werden.
Das Interface WSGI am Web-Server verbindet diesen mit dem Web-Framework, indem es den Request zum passenden Objekt weiterleitet. Hier wird der Applikation eine Callback-Funktion zur Verfügung gestellt [Kin17]. Au"serdem werden folgende Schritte durchgeführt:
Der User gibt eine URL im Browser ein und sendet sie an den Web-Server. Das Interface WSGI am Web-Server verbindet diesen mit dem Web-Framework, indem es den Request zum passenden Objekt weiterleitet. Hier wird der Applikation eine Callback-Funktion zur Verfügung gestellt (vgl. [Kin17]). Au"serdem werden folgende Schritte durchgeführt:
\begin{itemize}
\item Die Middleware-Klassen aus der settings.py werden geladen
\item Die Methoden der Listen Request, View, Response und Excpetion werden geladen
@@ -24,42 +23,37 @@ Das Interface WSGI am Web-Server verbindet diesen mit dem Web-Framework, indem e
\end{itemize}
Der WSGI-Handler fungiert also als Pförtner und Manager zwischen dem Web-Server und dem Django-Projekt.
Um die URL, wie weiter oben erwähnt, aufzulösen, benötigt WSGI einen urlresolver. Durch die explizite Zuweisung der vorhandenen Seiten, kann dieser über die regulären Ausdrücke der url.py-Datei iterieren. Gibt es eine Übereinstimmung, wird die damit verknüpfte Funktion in der View (view.py) aufgerufen. Hier ist die gesamte Logik der Website lokalisiert. Wie bereits erwähnt, ist es möglich unter Anderem auf die Datenbank der Applikation zuzugreifen und Eingaben des Users über eine Form zu verarbeiten. Nachdem werden die Informationen der View an das Template weitergereicht. Es handelt sich dabei um eine einfache HTML-Seite in der der strukturelle Aufbau im Frontend festgelegt wird. Die Informationen der View können hier zwischen doppelt-geschweiften Klammern eingebunden und, wenn nötig, mit einfachen Python-Befehlen angepasst werden. Nun kann das Template, die vom WSGI-Framework zur Verfügung gestellte Callback-Funktion befüllen und einen Response an den Web-Server schicken. Die fertige Seite ist beim Klienten im Browserfenster zum rendern bereit (vgl. Abbildung 2.2.).
Um die URL, wie weiter oben erwähnt, aufzulösen, benötigt WSGI einen \textit {urlresolver}(vgl. ). Durch die explizite Zuweisung der vorhandenen Seiten, kann dieser über die regulären Ausdrücke der url.py-Datei iterieren. Gibt es eine Übereinstimmung, wird die damit verknüpfte Funktion in der View (view.py) aufgerufen. Hier ist die gesamte Logik der Website lokalisiert. Es ist möglich unter Anderem auf die Datenbank der Applikation zuzugreifen und Eingaben des Users über eine Form zu verarbeiten. Nachdem werden die Informationen der View an das Template weitergereicht. Es handelt sich dabei um eine einfache HTML-Seite in der der strukturelle Aufbau im Frontend festgelegt wird. Die Informationen der View können hier zwischen doppelt-geschweiften Klammern eingebunden und, wenn nötig, mit einfachen Python-Befehlen angepasst werden. Nun kann das Template, die vom WSGI-Framework zur Verfügung gestellte Callback-Funktion befüllen und einen Response an den Web-Server schicken. Die fertige Seite ist beim Klienten im Browserfenster zum rendern bereit (vgl. [Kin17], Abbildung 2.2.).
\begin{figure}[!h]
\centering
\includegraphics[width=0.5\textwidth]{figures/request-response-cycle}
\caption{Request-Response-Kreislauf des Django Frameworks}
\caption{Request-Response-Kreislauf des Django Frameworks ([Nev15])}
\hfill
\end{figure}
\subsection {Besonderheiten}
\subsection {Besonderheiten Django's}
Das Django-Framework bringt einige Besonderheiten mit sich, die beim implementiern des Prototypen von Bedeutung sind. Diese werden im Folgenden beschrieben.
Die Administratoroberfläche ist eines der hilfreichsten Werkzeugen des gesamten Frameworks. Es stellt die Metadaten der Modelle aus dem Code visuell dar. Verifizierte Benutzer können die Daten nicht nur schnell erfassen, sondern diese auch editieren und verwalten. Das Recht, das Admin-Backend uneingeschränkt zu benutzen, ist dem sogenannten superuser vorenthalten. Dieser kann beim erstmaligen zuweisen nur über die Kommandozeile eingerichtet werden. Ist bereits ein superuser vorhanden, kann dieser im Admin-Backend weiteren Benutzern den gleichen Handlungsfreiraum einräumen. Zudem gibt es noch weitere Stufen der Zugangsberechtigungen, Staff- und Active-Status, die für eine breitere Gruppe von Benutzern geeignet ist.
Um die gestaffelten Zugangsberechtigungen auch auf der Website umsetzen zu können, stellt Django verschiedene Decorator zur Verfügung. Soll eine bestimmte Seite nur von eingeloggten Benutzern besucht werden dürfen, so importiert man die Decorator des, von Django zur Verfügung gestellten, Authentifizierungssystems mit
Um die gestaffelten Zugangsberechtigungen auch auf der Website umsetzen zu können, stellt Django verschiedene Decorator zur Verfügung. Soll eine bestimmte Seite nur von eingeloggten Benutzern besucht werden, so importiert man die Decorator des, von Django zur Verfügung gestellten, Authentifizierungssystems mit
\\
\noindent\hspace*{10mm}%
from django.contrib.auth.decorators import login\_required
\\
Direkt über den Beginn der Funktion in view.py, oder auch single-view-function, wird zudem folgende Zeile ergänzt:
Vor der Definition der Funktion wird dann folgende Zeile ergänzt:
\\
\noindent\hspace*{10mm}%
\makeatletter @login\_required
\\
Natürlich lassen sich die Decoratoren auch für andere Zwecke vor Funktionen platzieren. Begrenzte Zugänge zu den Views können durch die Art der Anfrage realisiert werden. Der Benutzer muss also zum Beispiel durch GET auf eine Seite zugreifen wollen um Einsicht zu erhalten.
Natürlich lassen sich Decorator auch für andere Zwecke vor Funktionen platzieren. Unter Anderem werden so die Views vor möglichen Angriffen, wie Cross-Site-Scripting, geschützt.
Benutzerdefinierte Decorator sind im Django-Framework möglich, darauf wird hier aber nicht weiter eingegangen.
Durch den einfachen Aufbau ist es au"serdem möglich diese selbst zu implementieren. Ein einfaches Beispiel wäre das prüfen des, an die Funktion übergebenen, Parameter. Sollen nur positive Zahlen verarbeitet werden, so kann der Decorator alle anderen Eingaben abfangen.
\subsection{Virtuelle Umgebung}
\section{Erweiterungen}
Die Programmiersprache Python bringt viele hilfreiche Erweiterungen mit sich. Die im folgenden aufgeführten sind hauptsächlich für die Paketverwaltung der Applikation zuständig.
Wird ein neues Projekt gestartet, ist es üblich, verschiedensten Programme und Module dafür zu verwenden. Die Versionen dieser spielen hierbei eine entscheidende Rolle, um Konflikte zu vermeiden [Fou18]. Um diesem Problem vorzubeugen, wird eine virtuelle Umgebung implementiert. Diese besitzt einen eigenen Projektpfad, beinhaltet alle nötigen Pakete und Bibliotheken, und lässt sich nach dem Einrichten im Terminal benutzten. Die folgende Abbildung (2.3) zeigt das Erstellen eines neunen Ordners, das Erstellen der virtuellen Umgebung und den Aktivierungsbefehl. Ist der Name des Environment in Klammern am Anfang der Zeile, bedeutet das, diese ist jetzt aktiv.
Wird eine prototypische Anwendung gestartet, ist es notwendig, verschiedensten Module zu verwenden und zu testen. Die Versionen dieser spielen hierbei eine entscheidende Rolle, um Konflikte zu vermeiden [Fou18]. Um diesem Problem vorzubeugen, wird eine virtuelle Umgebung implementiert. Sie besitzt einen eigenen Projektpfad, beinhaltet alle nötigen Pakete und Bibliotheken, und lässt sich nach dem Einrichten im Terminal starten. Die folgende Abbildung (2.4) zeigt das Erstellen eines neuen Ordners, das Erstellen der virtuellen Umgebung und den Aktivierungsbefehl. Ist der Name des Environment in Klammern am Kommandozeilenanfang, bedeutet das, diese ist jetzt aktiv.
\begin{figure}[!h]
\centering
@@ -68,32 +62,33 @@ Wird ein neues Projekt gestartet, ist es üblich, verschiedensten Programme und
\hfill
\end{figure}
Die Umgebung ist jetzt bereit befüllt zu werden. Um die Pakete und Module kollisionsfrei zu installieren ist es empfehlenswert einen Package-Manager zu verwenden. Mit pip können diese installiert, geupdated und gelöscht werden. Au"serdem kann der Manager Abhängigkeiten, wenn nötig, überschreiben und optimieren. Falls ein, sich von der neuesten Version unterscheidendes, Programm installiert werden soll, so ist dies ebenso möglich.
Um die Pakete und Module kollisionsfrei zu installieren ist es empfehlenswert einen Package-Manager zu verwenden. Mit pip, \glqq rekursives Akronym für pip Install Packages" (vgl. [Wei17, K. 23.1]), können diese installiert, geupdated und gelöscht werden. Au"serdem kann der Manager Abhängigkeiten, wenn nötig, überschreiben und optimieren. Falls ein, sich von der neuesten Version unterscheidendes, Programm installiert werden soll, so ist dies ebenso möglich.
Eine weitere hilfreiche Erweiterung ist pylint. Das Tool sucht nicht nur nach Fehlern im Code, sondern versucht diesen sauber und einheitlich zu gestalten. Hierbei wird auf den Code-Standard PEP-8 geprüft [Dix18]. Die folgende Liste zeigt eine Kurzfassung der wichtigsten Regeln:
\subsection{Lightweight Directory Access Protocol}
\begin{itemize}
\item Einrückung, meist 4 Leerzeichen
\item Maximale Zeichenanzahl pro Zeile
\item Zwei Leerzeile zwischen Klassen und Funktionen
\item Eine Leerzeile zwischen Methoden innerhalb einer Klasse
\item Leerzeichen in Ausdrücke und Anweisungen vermeiden
\item Die Reihenfolge der Importe: Standartbibliotheken, Drittanbieterbibliotheken, Lokale Anwendungen
\item Konventionen der Namensgebung von Funktionen, Modulen usw.
\end{itemize}
Natürlich sind dies Vorgaben, die eingehalten werden können, aber nicht notwendig sind um den Code fertig kompilieren und ausgeben zu lassen.
Das ldap, Lightweight Directory Access Protocol, muss als Erweiterung in die hier bearbeitende Bachelor-Arbeit eingebunden werden. Dies ist ein Internetprotokoll, welches die Kommunikation mit dem Hochschulinternen Active Directory verwaltet. Es wird eingesetzt um Benutzer so schnell und effizient wie möglich durch eine bereits existierende Datenbank abzufragen und zu authentifizieren. Der Aufbau ist mit einem Baum zu vergleichen (vgl. Abbildung 2.4.). Die Wurzel besteht aus sehr allgemeinen Informationen, umso näher man den Blättern kommt, umso spezifischer werden diese. Ein Objekt in der Struktur wird durch einen einmaligen Namen identifiziert, der aus den gesamten hinterlegten Informationen besteht. Der Name für den in der Abbildung 2.4 dargestellten Baum wäre \glqq cn=John Doe, ou=People, dc=sun.com\grqq.
Das ldap, Lightweight Directory Access Protocol, muss als Erweiterung in die hier bearbeitende Bachelor-Arbeit eingebunden werden, um später die Login-Daten im Hochschulinternen Netz abfragen zu können. Dies ist ein Internetprotokoll, welches die Kommunikation mit dem Active Directory verwaltet. Es wird eingesetzt um Benutzer so schnell und effizient wie möglich durch eine bereits existierende Datenbank abzufragen und zu authentifizieren. Der Aufbau ist mit einem Baum zu vergleichen (vgl. Abbildung 2.4.). Die Wurzel besteht aus sehr allgemeinen Informationen, umso näher man den Blättern kommt, umso spezifischer werden diese. Ein Objekt in der Struktur wird durch einen einmaligen Namen identifiziert, der aus den gesamten hinterlegten Informationen besteht. Der Name für den in der Abbildung 2.4 dargestellten Baum wäre \glqq cn=John Doe, ou=People, dc=sun.com\grqq (vgl. [Sch17]).
\begin{figure}[!h]
\centering
\includegraphics[width=0.5\textwidth]{figures/ldap-tree}
\caption{Beispiel eines LDAP-Trees}
\caption{Beispiel eines LDAP-Trees ([Orc10])}
\hfill
\end{figure}
\subsection{Sicherheit}
Beim Implementieren einer Website ist das Absichern vor schädlichen Attacken heutzutage unabdingbar. Django aktiviert einige Funktionen zum Schutz bereits beim Projektstart automatisch. Dazu gehört das Abwehren von \textit{Cross-Site-Scripting}, \textit{SQL-Injektion}, \textit{Clickjacking} und die Sicherstellung der \textit{Session-Security}.
Sollen die Formulare des Prototypen gegen \textit{Cross-Site-Request-Forgery} geschützt werden, muss aktiv ein \textit{Token} im Template gesetzt werden.
Ein solcher Angriff tritt auf wenn über einen bösartigen Link, eine Formularschaltfläche oder einfach dem eingebettetem JavaScript-Code die Daten im Server verändert werden sollen. Hierbei nutzt der Angreifer die Rechte eines eingeloggten Benutzers und kann somit Informationen im Back-end verfälschen. Um dies zu verhindern wird im Template des Prototypen, zwischen den Form-Tags der \textit{crsf-Token} eingefügt. Der Token setzt einen Cookie mit einer verschlüsselten Zufallszahl. Das Gleiche passiert im Template, wo ein, für den Benutzer nicht sichtbares, Form-Feld die gleiche verschlüsselte Zufallszahl erhält. Beide Zahlen erhalten zudem einen \textit{Salt}, ein generierter Zusatzwert, der das entschlüsseln dieser um ein vielfaches erschwert. Wird ein Request gesendet, vergleicht eine von Django initzialisierte \textit{Middleware} beide Zahlen. Sind diese nicht gleich, hat ein Dritter also die Informationen manipuliert, wird der 403 HTTP-Standart-Statuscode gesendet, welcher besagt, dass der Server eine Anfrage erhalten hat, diese aber nicht erfüllen wird.
Der \textit{crsf-Token} greift nur wenn der POST-Request innerhalb der eigenen Website gesendet wird und nicht über URLs, die au"serhalb des Frameworks liegen (vgl. [Fou18a]).
\section {Erweiterungen}
Django bringt viele hilfreiche Erweiterungen mit sich, die mit einem Packagemanager einfach in die virtuelle Umgebung geladen werden können. Um das passende Add-on für ein Projekt zu finden, bietet die Plattform djangopackages.org alle Erweiterungen in übersichtlichen Tabellen mit Eigenschaften und Bewertung an. Eine Vielzahl an Bibliotheken wurden für diese Arbeit getestet, aber wegen mangelnder Kompatibilität oder Funktionalität als nicht hilfreich erachtet und werden deshalb hier nicht weiter erwähnt.
Die im Folgenden aufgeführten Bibliotheken sind im Prototyp zur Anwendung gelangt.
\subsection {Taggable-Manager}
Django-taggit ist eine Erweiterung von Alex Gaynor, einem Entwickler aus Washingtion DC. Das Add-on ermöglicht das Verwenden von Tags die automatisch mit einem eindeutigen Slug versehen werden. Der darin enthaltene Taggable Manager verwendet Django's Contenttype Framework, welches per Default verwendet wird, um die Modelle der Applikation zu verfolgen und diese durch generische Beziehungen zu verknüpfen. Die Felder app\_label und model machen die Modelle eindeutig zuweisbar. Instanzen des Contenttypes präsentieren und speichern die Informationen und Erstellen automatisch neue Instanzen, wenn Modelle hinzugefügt werden. Zudem stehen Methoden zur Verfügung, die das Abrufen und Arbeiten mit Instanzen der einzelnen Modelle erleichtern.
Django-taggit ist eine Erweiterung, die das Verwenden von Tags vereinfacht. Der darin enthaltene Taggable Manager verwendet Django's Contenttype Framework, welches per Default verwendet wird, um die Modelle der Applikation zu verfolgen und diese durch generische Beziehungen zu verknüpfen. Die Felder app\_label und model machen die Modelle eindeutig zuweisbar. Instanzen des Contenttypes präsentieren und speichern die Informationen und Erstellen automatisch neue Instanzen, wenn Modelle hinzugefügt werden. Zudem stehen Methoden zur Verfügung, die das Abrufen und Arbeiten mit Instanzen der einzelnen Modelle erleichtern.
Der Taggable-Manager ist jedoch nicht an das Contenttype-Framework gebunden ([Her16]). Durch die Verwendung eines echten Fremdschlüssels, kann zum Beispiel die Performance und Referenzgarantie verwirklicht werden. Dazu ist lediglich die Erstellung einer eigenen lookup-Tabelle notwendig, die die Entitäten zweier Tabellen direkt verlinkt, anstatt diese generische zu verbinden. Weiterführend können Modelle in einem benutzerdefinierten Modell vereint werden, sodass er Zugriff auf diese einheitlich geschieht. Außerdem ist es möglich Primary-Keys zu verwenden, die nicht aus ganzen Zahlen bestehen, sondern aus Buchstaben und Wörtern.
@@ -103,22 +98,22 @@ Um django-taggit zu installieren wird der folgende Befehl in die Kommandozeile e
\$ pip install django-taggit
\\
Im model.py wird das Feld tag neu erstellt und als Taggable Manager definiert.
Au"serdem muss taggit in der settings.py unter INSTALLED\_APPS ergänzt werden. Um dem Programm zu sagen, dass nun eine neue Liste der Datenbank hinzugefügt werden muss, werden folgende Befehle in die Kommandozeile eingefügt:
\\
\noindent\hspace*{10mm}%
\$ python3 manage.py makemigrations \\
\noindent\hspace*{10mm}%
\$ python3 manage.py migrate
\\
Au"serdem muss taggit in der settings.py unter INSTALLED\_APPS ergänzt werden. Um dem Programm mitzuteilen, dass nun eine neue Liste der Datenbank hinzugefügt werden muss, werden über die Kommandozeile Migrations-Befehle ausgeführt, die im Kapitel Datenmodellierung genauer beschreiben werden.
Im Admin-Backend kann nun geprüft werden, ob das neue Feld in die Datenbank integriert wurde. Neue Tags können in das Textfeld eingetragen werden. Der Parser verarbeitet jedes Wort, dass durch ein Komma oder ein Leerzeichen getrennt ist als ein Tag. Soll dieses jedoch aus mehreren Wörtern bestehen so müssen diese mit Anführungszeichen umfasst werden. Standardmäßig unterscheidet der Taggable Manager zwischen Groß- und Kleinschreibung, Tags sind also case sensitive. Ändern kann man das, indem der Boolean TAGGIT\_CASE\_INSENSITIVE in der settings.py auf True gestellt wird.
\subsection {Hilfsbibliotheken}
---warum habe ich diese bibs gealden (beschreibung evtl in prototyp)
Weitere Add-ons werden geladen um kleinere Funktionen der Website einfach umsetzen zu können. Zu diesen gehört django-taggit-templatetags, welches durch die Einbindung im HTML-File die Tags der Applikation als Liste ausgibt. Au"serdem lassen sich die eingepflegten Tags als Cloud visualisieren. Kommen bestimmte Tags öfters vor als andere, so werden sie entsprechend grö"ser dargestellt.
Django-hitcount dient zum zählen der Besucher einer Seite ([Tim15]). Dies lässt sich auf drei verschiedene Arten in die Applikation einbinden. Der schnellste Weg ist die Darstellung der Besuche mit Hilfe eines Template Tags im HTML-File. Möchte man die Anzeige aber individueller gestalten so kann durch das integrieren der HitCountDetailView in views.py die Variable hitcount verwenden und im Frontend ausgeben. Eine weiter Möglichkeit ist das Erweitern oder neu Erstellen eines Models im Django Backend. Von dort kann auf das neue Feld im Django-Admin-Backend zugegriffen werden, ebenso wie in der View und im Template. Die im Add-on integrierten Einstellungen, die in der settings.py ergänzt werden müssen, ermöglichen unter Anderem das begrenzen der Lebensdauer des Zählers, bevor dieser zurück gesetzt wird.
Um das Versenden und Verwalten von E-Mails in Django zu realisieren eignet sich django-post-office ([Ong18]). Nach der Installation kann im Admin-Backend ein E-Mail-Templates angelegt werden, Anhänge verwaltet und das Senden dieser im Log überprüft werden. Die Benachrichtigungen können asynchron versendet werden mit einem integrierten Planungsmanager. Der Inhalt kann Text oder HTML-basiert sein und in mehreren Sprachen hinterlegt werden.
\section{Bootstrap}
Eine umfangreiche Website einheitlich zu gestalten ist oft sehr komplex und zeitaufwendig. Die Entwickler von Twitter haben deshalb, zunächst Firmenintern, an einem neuen Verwaltungswerkzeug gearbeitet, das mehrere Bibliotheken zusammenführen sollte. Sie merkten, das die neue Bibliothek, die daraus entstand, nicht nur auf Ihre eigene Website anwendbar, sondern so flexible ist, dass jede Art von Website davon profitieren könnte. 2011 entschieden Sie sich Bootstrap für die Öffentlichkeit frei zugänglich zu machen. Die Open-Source-Bibliothek, die auf GitHub abrufbar ist, wird seitdem von vielen interessierten Programmierern weiterentwickelt und ist somit stark gewachsen. Version 2.0 verfügt au"serdem über die Fähigkeit Websites responsive auf verschiedenste mobile Endgeräte anzupassen.
Eine umfangreiche Website einheitlich zu gestalten ist oft sehr komplex und zeitaufwendig. Die Entwickler von Twitter haben deshalb, zunächst Firmenintern, an einem neuen Verwaltungswerkzeug gearbeitet, das mehrere Bibliotheken zusammenführen sollte. Sie merkten, das die neue Bibliothek, die daraus entstand, nicht nur auf Ihre eigene Website anwendbar, sondern so flexible ist, dass jede Art von Website davon profitieren könnte (vgl. [Ott11]). Die Open-Source-Bibliothek, die auf GitHub abrufbar ist, wird seitdem von vielen Programmierern weiterentwickelt und ist somit stark gewachsen. Version 2.0 verfügt au"serdem über die Fähigkeit Websites responsive auf verschiedenste mobile Endgeräte anzupassen (vgl. [Ott12]).
Das Bootstrap-Paket beinhaltet vorgefertigte Cascading Stylesheets, kurz CSS, die Farben, Schriftarten und viele weitere Stildefinitionen. Zudem befinden sich auch Erweiterungen des JavaScript-Frameworks jQuery in der Bibliothek, die weiterführende Funktionen beinhalten wie zum Beispiel Filter oder Dropdown-Menüs. Das Paket kann einfach eingebunden werden im head-tag einer HTML-Datei (vgl. Abbildung 2.3). Das bedeutet, dass Medie-Queries oder ähnliche Methoden nicht mehr nötig sind, nicht nur um eine Website mobilfähig zu machen, sondern auch kompatibel für die verschiedensten Browser.
Das Bootstrap-Paket beinhaltet vorgefertigte Cascading Stylesheets, kurz CSS, die Farben, Schriftarten und viele weitere Stildefinitionen. Zudem befinden sich auch Erweiterungen des JavaScript-Frameworks jQuery in der Bibliothek, die weiterführende Funktionen beinhalten wie zum Beispiel Filter oder Dropdown-Menüs. Das Paket kann einfach eingebunden werden im head-tag einer HTML-Datei (vgl. Abbildung 2.3). Das bedeutet, dass Media-Queries oder ähnliche Methoden nicht mehr nötig sind, nicht nur um eine Website mobilfähig zu machen, sondern auch kompatibel für die verschiedensten Browser (vgl. [Boo12]).
\begin{figure}[!h]
\centering
@@ -127,7 +122,7 @@ Das Bootstrap-Paket beinhaltet vorgefertigte Cascading Stylesheets, kurz CSS, di
\hfill
\end{figure}
Durch das Einbinden von Bootstrap in einer HTML-Datei werden einige Styles bereits automatisch auf die darin vorkommenden Tags, wie Links und Überschriften, angewandt. Dies ist jedoch nur ein sehr kleiner Teil den die Bibliothek zur Verfügung stellt. Möchte man Bootstrap umfangreich nutzen so lassen sich die Stildefinitionen mit Klassen oder ID's in diverse HTML-Tags eintragen (vlg. Abbildung 2.4.).
Durch das Einbinden von Bootstrap in einer HTML-Datei werden einige Styles bereits automatisch auf die darin vorkommenden Tags, wie Links und Überschriften, angewendet. Dies ist jedoch nur ein sehr kleiner Teil den die Bibliothek zur Verfügung stellt. Möchte man Bootstrap umfangreich nutzen so lassen sich die Stildefinitionen mit Klassen oder ID's in diverse HTML-Tags eintragen (vlg. Abbildung 2.4.).
\begin{figure}[!h]
\centering
@@ -140,5 +135,5 @@ Möchte man bestimmte gestalterische Eigenschaften von Bootstrap überschreiben
\section{Cron}
@@ -1,25 +1,166 @@
\chapter{Prototyp}
\label{ch:prototyp}
Um zu beweisen, wie eine Spcial Media Plattform die Mail-Flut der Efi-Fakultät reduzieren kann, wird ein Prototyp implementiert.
Um die wissenschaftliche Frage, nicht nur zu beantworten, sondern zu beweisen, wird in dieser Arbeit die Methode des Prototypings genutzt. Der Prototyp dient zum experimentellen Arbeiten und sichert eine strukturell fundierte Umsetzung des darauf folgenden Endprodukts. Der Fokus liegt dabei zunächst auf der Funktionalität der Anwendung. Prototyping wird als bevorzugte Methode gewählt um schnell ein Ergebnis zu erzielen (vgl. [Abr16]). Zudem soll aufbauend auf Diesem ein Produkt realisiert werden, das als Erweiterung in das Netzwerk der Hochschule integriert werden soll.
\section{Forschungsdesign}
Das Kapitel zeigt eine kurze Übersicht der Vorgehensweise und den Leitfaden an den sich die Implementierung des Prototyps anlehnt (vgl. Abbildung 3.1.).
Zu Beginn der Arbeit wird, des sich aus der Forschungsfrage ergebenden Problems analysiert und alle wichtigen Anforderungen erfasst. Dies bildet die Basis für alle weitern notwendigen Schritte um am Ende eine sinnvolle Lösung bereitstellen zu können. Die Recherche dient der Sammlung aller notwendigen Werkzeuge und gibt einen Überblick über verschiedene Hilfsbibliotheken. Das Implementieren der Applikation kann nun auf Basis der Recherche durchgeführt werden. Dazu gehört das Testen verschiedener Bibliotheken und Erweiterungen um die bestmögliche Ergebnis zu eruieren. Abschlie"send wird die Funktionalität des Prototypen getestet und evaluiert ob die Forschungsfrage ausreichend beantwortet wird. Handlungsempfehlungen und mögliche Funktionen zum Erweitern finalisieren die Arbeit.
\begin{figure}[!h]
\centering
\includegraphics[width=0.8\textwidth]{figures/forschungsdesign}
\caption{Forschungsdesign}
\hfill
\end{figure}
\section{Organisation}
Grundlegender Aufbau der Website, Verwaltung der Daten evlt auf nochmal Taggable-Manager (ManyToMany) ...
\subsection{Verwaltung im Administrator-Backend}
Näher auf CustomUserModel eingehen, Diagramm erstellen und einbinden
Zum Entwickeln des Prototypen wird die Open-Source- Entwicklungsumgebung Visual Studio Code von Microsoft verwendet. Die dynamische Oberfläche ist sehr performant, da sie wenig Speicherplatz bedarf und zunächst ohne grö"sere Ergänzungen sofort einsetzbar ist. Um den Code mit Shortcuts übersichtlicher zu gestalten und auf Python und Django abstimmen zu können werden aus der üppigen \textit{Extension-Bibliothek} kostenlose Erweiterungen eingebunden. Unter Anderem sind die folgenden Add-on's während der Arbeit zum Einsatz gekommen (vgl. [Mic18]):
\begin{itemize}
\item Python von Microsoft (Linting und Debugging)
\item MagicPython von MagicStack Inc. (Syntax-Highlighter)
\item Python Extension Pack (Django Code-Vervollständigung)
\end{itemize}
Der entwickelte Syntax wird regelmä"sig auf das hochschulinterne Git-Repository geladen. Hier kann man mit Hilfe der verwendeten IDE bei der Überarbeitung im sogenannten \textit {Working-Tree} die Änderungen visuell einsehen und wenn nötig bearbeiten. Es wird ausschlie"slich auf den Master-Branch gepusht, da nur ein Entwickler an dem Prototyp tätig ist. Lediglich zum Testen experimenteller Bibliotheken werden neue Branches angelegt und diese, falls Sie sich als hilfreich erweisen, mit dem Master-Branch fusionieren.
Um einen Einblick in den Aufbau eines Django-Projektes zu erlangen wird dies im folgenden genauer beschrieben. Die unterste Projektebene wird durch die manage.py-Datei gebildet. Sie wird unter Anderem genutzt um den lokalen Server starten zu können. In der Ebene darüber findet sich im Ordner \glqq mysite\grqq\ die Datei settings.py. Hier werden die allgemeinen Einstellungen der Website vorgenommen, wie zum Beispiel das Integrieren der Erweiterungen und der Pfad zu den hinterlegten Templates. Au"serdem ist die urls.py dort zu finden, deren Funktion bereits im Kapitel Django erläutert wurde. Die \_\_init\_\_.py und wsgi.py sind trivial und deshalb wird hier nicht weiter darauf eingegangen. Im Ordner \glqq thisisenv\grqq\ sind alle Bibliotheken und Add-on's der virtuellen Umgebung hinterlegt. Der Fokus dieser Arbeit liegt im Ordner \glqq application\grqq. Hier sind die Datenbank-Migrationen, die Static-Files wie bootstrap und css, und alle Templates abgelegt. Zudem befindet sich hier die Logik des Prototypen, auf die im Kapitel \glqq Funktionen\grqq\ weiter eingegangen wird.
\subsection{Datenmodellierung}
Die Struktur der bereits bestehenden Datenbank im Django-Framework und die Erweiterungen dessen werden hier genauer erläutert. Zunächst wird auf die Ergänzung des bestehenden \textit{UserModel} eingegangen, nachdem veranschaulicht der Abschnitt das \textit{PostModel} und abschlie"send werden die Zusammenhänge der Modelle dargestellt.
Alle Modelle werden als Django-Modelle deklariert um beim kompilieren des Codes dem Compiler mitzuteilen, dass diese integriert werden müssen (vgl. [Dja18]). Mit der folgenden Eingabe
\\
\noindent\hspace*{10mm}%
\$ python3 manage.py makemigrations
\\
werden die neun Tabellen der Modelle erstellt. Um diese dann auch anwenden zu können, muss der Befehl
\\
\noindent\hspace*{10mm}%
\$ python3 manage.py migrate
\\
darauffolgend ebenso in die Kommandozeile eingegeben werden.\\
\textbf{UserModel:}
\begin{addmargin}[25pt]{0pt}
Hierbei ist das Authentifizierungssystem von Django mit einem \textit{UserModel} bereits angelegt. Dies muss für den Prototyp um das Feld \glqq tags \grqq\ erweitert werden, sodass ein Benutzer folgende Felder aufweist (vgl. [Fou18a]):
\begin{itemize}
\item username, fist\_name, last\_name, email, groups, user\_permissions, is\_staff, is\_active, is\_superuser, last\_login, date\_joined, tags
\end{itemize}
Das Feld \textit{groups} wird in dieser Arbeit nicht verwendet und deshalb im Folgenden ignoriert.
In models.py ist der \textit{CustomUser} dafür verantwortlich das neue Feld mit dem \textit{Default-User} zu verknüpfen. Durch das \textit{OneToOneField} (siehe Abbildung 3.2.) wird die Verbindung zum schon bestehenden Modell hergestellt. \textit{OneToOne} bildet eine einzigartige Zuordnung von zwei Objekten, sodass der Rückgabewert nur aus einem Objekt besteht (vgl. [Fou18a]). Das hei"st, dass hier keine Rekursiven, also auf sich selbst verlinkende oder \textit{lazy} Beziehungen möglich sind um Konflikte bei der Authentifizierung zu vermeiden. Dies ist die übliche Vorgehensweise um mit einem Primärschlüssel das Default-Model zu erweitern.
\begin{figure}[!h]
\centering
\includegraphics[width=1\textwidth]{figures/custommodelcode}
\caption{CustomUserModel in models.py}
\hfill
\end{figure}
\end{addmargin}
\textbf{PostModel:}
\begin{addmargin}[25pt]{0pt}
Das \textit{PostModel} beschreibt alle Felder die ein Post enthalten kann. Basierend auf der Blog-Lösung von Djangogirls.com gehören dazu folgende:
\begin{itemize}
\item author, title, text, created\_date, published\_date, tags
\end{itemize}
Der Autor ist durch einen \textit{ForeignKey} mit dem \textit{UserModel} verbunden. Diese sogenannte \textit{ManyToOne} Verbindung reicht hier aus um einem Post den Autor, also dem eingeloggten User, zuzuweisen. Title ist ein \textit{CharField} und wird mit einer Zeichenbegrenzung festgelegt. Der Text hingegen kann eine beliebige Menge an Zeichen enthalten und wir deshalb als \textit{TextField} deklariert. Erstellungsdatum und Publikation sind beides \textit{DateTimeField}s. Ersteres muss vom Ersteller angegeben werden, Zweiteres kann zunächst offen gelassen werden durch die Zusatzangabe \glqq null=True\grqq. Ein weiteres Feld tags wird hinzugefügt um den Posts unabhängig von den Usern Tags zuordnen zu können.
\\
\end{addmargin}
\textbf{Gesamtmodellierung:}
\begin{addmargin}[25pt]{0pt}
Die Abbildung 3.3. zeigt die Modellierung der Tabelle \glqq User\grqq\ und \glqq Post\grqq. Au"serdem verdeutlicht es die Erweiterung des User-Modells von Django mit dem in der Applikation angelegtem CustomUser. Die im User vorkommenden booleschen Felder werden im Kapitel Berechtigung der User genauer erörtert.
\begin{figure}[!h]
\centering
\includegraphics[width=0.9\textwidth]{figures/datamodel}
\caption{Datenmodellierung von User und Post}
\hfill
\end{figure}
\end{addmargin}
\subsection{Verwaltung im Administrator-Back-end}
In diesem Kapitel wird beschrieben wie das Administrations-back-end genutzt werden kann. Es ist jedoch zu beachten, dass die Applikation vorwiegend von Dozenten und Angestellten der Hochschule ohne Administratorrechte verwendet werden soll. Die gestaffelten Berechtigungen werden im Kapitel \glqq Berechtigung der User \grqq\ genauer beschreiben.
Ein Django-Projekt bildet bereits beim Einrichten, \textit{per Default}, eine Administrator-Oberfläche um die Inhalte der Website kontrollieren zu können. Nach der Migration von den oben genannten Modellen wird diese erweitert. Nich zu vergessen sind die externen Tabellen der installierten Add-on's, die nach der Migration das Back-end expandieren.
\subsection{Berechtigung der User}
Welche Berechtigungen gibt es im Prototyp, welche werden vom Active Directory übernommen?
Im Allgemeinen verwendet man Berechtigungen um Benutzern Zugang zu bestimmten Resourcen in einem Netzwerk einzuräumen. Au"serdem bestimmt es die Arte des Zugangs, also ob der User die Resourcen nur lesen oder auch verändern oder löschen darf(vgl. [Com18]). Die Rechte werden meist einzelnen Individuen oder einer Gruppe zugeordnet.
Das gestaffeltes Berechtigungsmanagement ist im Prototyp notwendig um den Umgang mit Informationen so sicher wie möglich zu gestalten und um die Nachhaltigkeit dieser zu bewahren. Des Weiteren soll der Prototyp als Vorlage für die Erweiterung der Hochschulwebsite dienen und daher ist eine ähnliche Verteilung der Zugangsberechtigungen sinnvoll.
Studenten sollen zunächst Informationen weder einpflegen, noch editieren dürfen. Die einzigen Änderungen die sie vornehmen können sind auf Ihre eigene Datenbank fokussiert. Das Hinzufügen von Tags um die damit verbunden Posts auf dem persönlichen Dashboard zu sehen wird ihnen gewährleistet. Dies soll verhindern, dass Informationen nicht zu leichtfertig geändert oder gelöscht werden.
Dozenten und Angestellte der Hochschule sind dazu berechtigt, Posts zu erstellen, zu editieren und wieder zu löschen. Zudem können sie, wie Studenten, Tags abonnieren und somit ebenso das persönliche Dashboard gestalten. Das Einloggen in die Administratoroberfläche kann vorgenommen werden, jedoch sind der Gruppe noch keinerlei Rechte zugewiesen. Möchte man dies ändern, kann man das von Django bereitgestellte Feld \glqq User Permissions\grqq\ im Admin-back-end unter Users, und dem Namen der Person, die gewünschte Berechtigung zuteilen. Diese sind von Django vorgegeben und betreffen alle vorhandenen Modelle der Applikation. Soll ein User zum Beispiel erlaubt sein einen Tag aus dem Archiv zu löschen, so wählt er das Feld \glqq taggit \textbar Tag \textbar can delete Tag\grqq\ und schiebt es von der Auswahl zu den Berechtigungen.
Durch das Setzen des booleschen Wert \glqq is\_staff\grqq\ auf \glqq True\grqq\ beim Erstellen der Benutzer, ist es möglich im Code der Applikation Abfragen durchzuführen. Dadurch lassen sich bestimmte Views an die eingeloggte Personengruppe anpassen. So ist das Menü für Dozenten und Angestellte ein umfangreicheres als das, der Studenten.
\section{Funktion}
Nötige Funktionen
\section{Funktionen}
Um die wichtigsten Funktionen des Prototypen festlegen zu können werden User Stories erstellt (vgl. Abbildung 3.4.). Diese bestehen aus kurzen Sätzen und beschreiben aus Sicht des Nutzers das Verwenden einer Funktion. Die Priorisierung bezieht sich hierbei auf die Relevanz der Funktion, wobei die Funktionen mit einem rotem Punkt sehr wichtig für den Prototypen sind, Orang wichtige Funktionen sind aber nicht unbedingt notwendig und Grün kaum relevant sind.
\begin{figure}[!h]
\centering
\includegraphics[width=0.9\textwidth]{figures/userstories}
\caption{User Stories}
\hfill
\end{figure}
\subsection{Verwalten}
Das Verwalten der Artikel soll von berechtigten Nutzern im Front-end stattfinden, hingegen die prozessuale Logik im Code-Back-end passiert. Der Vorgang des Erstellens, des Löschens und des Editierens der einzelnen Einträge wird im Folgenden konkretisiert.
\\
\\
Einen neuen Artikel erstellen:
Das \glqq +\grqq\ in der Menüleiste leitet den Benutzer zu einer Unterseite. Hier können alle Felder befüllt werden, die im PostForm-Formular in der Datei forms.py festgelegt wurden. Dazu gehören der Titel und der Text, die als Pflichtfelder gelten. Das Feld \glqq Tags \grqq\ muss ebenfalls mindestens einen Wert enthalten um die Validierung der Eingaben sichern zu können. Eine Ausnahme bildet das Datum der Veröffentlichung. Bleibt das Feld leer so wird der Post automatisch der Liste der Entwürfe beigefügt.
Speichert der Benutzer nun den Artikel, so werden im Back-end die Daten wir folgt verarbeitet. In der View \glqq post\_new \grqq\ wird zunächst die Validität aller Eingaben geprüft. Falls dies der Fall ist, wird der Post als Objekt zurückgegeben, jedoch durch das optionale \textit{Keywort} \glqq commit=false \grqq\ noch nicht in der Datenbank abgelegt. Das ist notwendig um dem Objekt spezifische Informationen mitzugeben. In diesem Kontext wird der aktuell eingeloggte User als Autor hinterlegt. Jedoch birgt die Vorgehensweise eine Problematik im Speichervorgang einer \textit{ManyToMany} Relation zwischen zwei Modellen. Da Informationen nur auf ein bereits in der Datenbank bestehendes Objekt gesichert werden können ist dies zunächst nicht möglich (vgl. [Fou18b]).
Im Prototyp nutzt das \textit{PostModel} die \textit{ManyToMany} Konnektivität mit dem Modell des TaggabelManagers. Um die Eingabe des Tag-Felds trotzdem im neuen Artikel speichern zu können, wird zunächst das Objekt gespeichert, um nachdem explizit das von Django zur Verfügung gestellte \glqq form.save\_m2m() \grqq\ aufrufen zu können. Dieser Befehl zwingt die Daten der \textit{ManyToMany} Relation zu speichern.
Die eindeutige Zuordnung der Eingabe im Front-end zur Verarbeitung der Artikel im Back-end ist mit einem \textit{Primary Key} realisiert. Das \textit{PostModel} bekommt beim Anlegen keinen solchen Schlüssel zu einem Feld zugewiesen. Ist das der Fall, erstellt Django automatisiert beim Speichern der Tabelle diesen als \textit{AutoField} im Feld \glqq Id \grqq\ und zählt bei jedem neu Erstellen eines Objekts hoch. Somit sind alle Objekte eindeutig zuordenbar und können mit dem Kommando \glqq post.pk \grqq\ jederzeit aufgerufen werden.
\\
\\
Einen bereits vorhandenen Artikel löschen:
In der Detailansicht eines Artikels ist es möglich diesen durch klicken auf den Button \glqq Löschen \grqq\ zu entfernen. Die View \glqq post\_remove \grqq\ selektiert über den im Template mitgegebenen \textit{Primary Key} das Objekt und speichert dies in der Variable \glqq post\grqq\. Um dem Benutzer nochmals mitteilen zu können, welchen Artikel er entfernt hat, wird vor dem Löschen eine Nachricht mit dem Titel dessen generiert. Nachdem wird dieser gelöscht (post.remove()) und eine Umleitung am Ende der View-Definition schickt den Benutzer auf die Seite der Artikelliste. Hier wird die vorher erstellte Nachricht aus informellen Gründen eingebunden.
\\
\\
Einen bereits vorhandenen Artikel bearbeiten:
Ähnlich wie beim Löschen eines Artikel, kann man diesen in der Detailansicht bearbeiten. Mit dem Betätigen des Bearbeiten-Buttons wird der User auf den Artikel-Editor weitergeleitet. Die Seite zeigt die Form, wie beim Erstellen eines neuen Artikels, nur dass hier die Felder bereits den Inhalt des zu Editierenden Textes enthalten. Dazu wird in der View über den \textit{Primary Key} der Artikel einer Variable \glqq post\grqq\ zugeordnet. Die bedingte Anweisung fragt in Zeile 91 der Abbildung 3.5., ob der Benutzer die Eingaben bereits zum Speichern veranlasst hat. Wird die Bedingung zunächst nicht erfüllt, rendert die Funktion lediglich die \textit{PostForm}, mit dem bereits eingepflegten Inhalt durch eine GET-Abfrage in der die Daten des Artikels als Instanz übermittelt werden (vgl. Abbildung 3.5. Zeile 100).
Betätigt der Benutzer den \glqq Speichern-Button\grqq\ im Front-end wird die bedingte Abfrage in Zeile 91 erfüllt. Die POST-Abfrage ist hier notwendig, da Django nur so Daten in der Datenbank verändert. Eine Begründung hierfür ist die Art der Übertragung der Daten an den Server. \textit{POST-Requests} bündeln alle Daten, verschlüsseln diese und senden Sie dann an der Server (vgl. [Fou18c]). Dadurch ist der Vorgang einfacher kontrollierbar und mit einem \textit{csrf-Token} im Template ebenfalls gegen Cross-Site-Request-Fälschung abgesichert. Die weitere Vorgehensweise der Funktion ist identisch zum bereits erwähnten neu Erstellen eines Artikels und muss nicht weiter beschreiben.
\begin{figure}[!h]
\centering
\includegraphics[width=0.9\textwidth]{figures/post-edit-view}
\caption{Funktion post\_edit, Auszug aus views.py.}
\hfill
\end{figure}
\subsection{Abonnieren}
Tags als eingeloggter User abonnieren und verwalten Front-end und Admin-Backend?
\subsection{Filtern}
Tag-map? Filtern nach abonnierten Posts, alle Posts und Posts mit bestimmten Tags
Tag-cloud? Filtern nach abonnierten Posts, alle Posts und Posts mit bestimmten Tags
\subsection{Benachrichtigung}
Mail-Benachrichtigung wöchentlich
Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.
@@ -1,6 +1,6 @@
%------------------------------------------------------------------------------
%geometry
\usepackage[a4paper,inner=2cm,outer=4cm,top=3cm,bottom=3cm]{geometry}
\usepackage[a4paper,inner=4cm,outer=2cm,top=3cm,bottom=3cm]{geometry}
\renewcommand{\topfraction}{.85}
\renewcommand{\bottomfraction}{.85}
%load packages-----------------------------------------------------------------
@@ -42,6 +42,7 @@
\usepackage[nottoc]{tocbibind}
%------------------------------------------------------------------------------
\usepackage{titlesec}
\usepackage{pdfpages}
%------------------------------------------------------------------------------
\usepackage{comment}
%------------------------------------------------------------------------------
@@ -53,3 +53,136 @@
year = "2018",
note = "https://www.datacamp.com/community/tutorials/pep8-tutorial-python-code"
}
@article{Shabda,
author = "Shabda",
title = "Understanding decorators",
year = "2009",
note = "https://www.agiliq.com/blog/2009/06/understanding-decorators/"
}
@article{Timm,
author = "Damon Timm",
title = "django-hitcount Documentation",
year = "2015",
note = "https://django-hitcount.readthedocs.io/en/latest/overview.html"
}
@article{Ong,
author = "Selwin Ong",
title = "django-post\_office git Repository",
year = "2018",
note = "https://github.com/ui/django-post\_office/blob/master/AUTHORS.rst"
}
@article{Ong,
author = "Ryan Nevius",
title = "django-post\_office git Repository",
year = "2015",
note = "https://ryannevius.com"
}
@article{Solutions,
author = "Mindfire Solutions",
title = "Advantages and Disadvantages of Python Programming Language",
year = "2017",
note = "https://medium.com/@mindfiresolutions.usa/advantages-and-disadvantages-of-python-programming-language-fd0b394f2121"
}
@book{Weigend,
author = "Michael Weigend",
title = "Python GE-PACKT",
year = "2017",
note = "Kapitel 23.1"
}
@article{Schlede,
author = "Frank-Michael Schlede, Thomas Bär, Andreas Donner",
title = "Was ist LDAP (Lightweight Directory Access Protocol)?",
year = "2017",
note = "https://www.ip-insider.de/was-ist-ldap-lightweight-directory-access-protocol-a-581204/"
}
@article{Oracle,
author = "Oracle Cooperation",
title = "About LDAP",
year = "2010",
note = "https://docs.oracle.com/cd/E19182-01/820-6573/6nht2e5a4/index.html"
}
@article{Otto,
author = "Mark Otto",
title = "Bootstrap from Twitter",
year = "2011",
note = "https://blog.twitter.com/developer/en\_us/a/2011/bootstrap-twitter.html"
}
@article{Bootstrap,
author = "Bootstrap Authors, Twitter Inc",
title = "Bootstrap Repository",
year = "2011",
note = "https://github.com/twbs/bootstrap"
}
@article{Otto-2,
author = "Mark Otto",
title = "Say hello to Bootstrap 2.0",
year = "2012",
note = "https://web.archive.org/web/20120203191214/https://dev.twitter.com/blog/say-hello-to-bootstrap-2"
}
@article{Django,
author = "Django Software Foundation",
title = "django.contrib.auth, User Model",
year = "2018",
note = "https://docs.djangoproject.com/en/2.1/ref/contrib/auth/"
}
@article{Djangogirls,
author = "Djangogirls",
title = "Creating a blog post model",
year = "2018",
note = "https://tutorial.djangogirls.org/en/django\_models/"
}
@article{Microsoft,
author = "Microsoft",
title = "Extensions for the Visual Studio family of products",
year = "2018",
note = "https://marketplace.visualstudio.com/"
}
@article{Computer,
author = "The Computer Language Company",
title = "Definition of: user permissions",
year = "2018",
note = "https://www.pcmag.com/encyclopedia/term/58231/user-permissions"
}
@article{Django-2,
author = "Django Software Foundation",
title = "Modelforms - The save() methode",
year = "2018",
note = "https://docs.djangoproject.com/en/dev/topics/forms/modelforms/\#the-save-method"
}
@article{Django-3,
author = "Django Software Foundation",
title = "Working with Forms",
year = "2018",
note = "https://docs.djangoproject.com/en/dev/topics/forms/\#using-a-form-in-a-view"
}
@article{Fiok,
author = "Marzena Fiok",
title = "E-Mail-Flut sorgt für Kostenlawine",
year = "2014",
note = "https://www.tecchannel.de/a/e-mail-flut-sorgt-fuer-kostenlawine,402338,3"
}
@article{Django-4,
author = "Django Software Foundation",
title = "Cross Site Request Forgery protection¶",
year = "2018",
note = "https://docs.djangoproject.com/en/dev/ref/csrf/"
}
@@ -16,7 +16,7 @@
\line(1,0){1}\\
\vspace{2.0cm}
\textbf{\huge{Esther Kleinhenz}}\\
\textbf{\huge{Esther Beate Kleinhenz}}\\
\vspace{0.4cm}
{\Large \textbf{Matrikelnummer: }2649270}\\
\vspace{2.5cm}
@@ -41,46 +41,6 @@
Nürnberg, {\today}\\
\end{center}
\newpage
\thispagestyle{empty}
\setlength{\unitlength}{15cm}
\line(1,0){1}\\
%\indent Diese Dissertation wurde\\
%\indent Studiengang Wirtschaftsinformatik\\
%\indent Fakultät Informatik\\
%\indent Technischen Hochschule Nürnberg\\
%\indent Georg Simon Ohm \\
%\indent Nürnberg, Deutschland\\
%\indent verfasst.
%\vspace{1.5cm}
\indent Hiermit erkläre ich, dass die vorliegende Arbeit von mir selbständig verfasst und nicht\\
\indent anderweitig für Prüfungszwecke vorgelegt wurde, keine anderen als die angegebenen\\
\indent Quellen oder Hilfsmittel benutzt sowie wörtliche oder sinngemäße Zitate als solche\\
\indent gekennzeichnet wurden.
\vspace{0.5cm}
\begin{flushright}
Nürnberg, \today
\end{flushright}
\vspace{1.0cm}
\indent Katja Cornelia Hader \\
\indent E-mail: {haderka56442@th-nuernberg.de}
\vspace{\fill}
\indent Studiengang Wirtschaftsinformatik\\
\indent Georg Simon Ohm\\
\indent Technische Hochschule Nürnberg\\
\indent Keßlerplatz 12\\
\indent 90489 Nürnberg\\
\indent Deutschland
\end{titlepage}
%------------------------------------------------------------------------------
-62
View File
@@ -1,62 +0,0 @@
\relax
\providecommand\hyper@newdestlabel[2]{}
\providecommand\HyperFirstAtBeginDocument{\AtBeginDocument}
\HyperFirstAtBeginDocument{\ifx\hyper@anchor\@undefined
\global\let\oldcontentsline\contentsline
\gdef\contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
\global\let\oldnewlabel\newlabel
\gdef\newlabel#1#2{\newlabelxx{#1}#2}
\gdef\newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
\AtEndDocument{\ifx\hyper@anchor\@undefined
\let\contentsline\oldcontentsline
\let\newlabel\oldnewlabel
\fi}
\fi}
\global\let\hyper@last\relax
\gdef\HyperFirstAtBeginDocument#1{#1}
\providecommand*\HyPL@Entry[1]{}
\catcode `"\active
\HyPL@Entry{0<</S/D>>}
\babel@aux{ngerman}{}
\HyPL@Entry{1<</P()>>}
\@writefile{toc}{\contentsline {chapter}{Declaration of Authorship}{}{dummy.1}}
\@writefile{toc}{\contentsline {chapter}{Abstrakt}{}{dummy.2}}
\HyPL@Entry{3<</S/D>>}
\@writefile{toc}{\contentsline {chapter}{\numberline {1}Einleitung}{1}{chapter.3}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {1.1}Ausgangsituation}{1}{section.4}}
\@writefile{toc}{\contentsline {section}{\numberline {1.2}Ziel der Arbeit}{2}{section.5}}
\@writefile{toc}{\contentsline {chapter}{\numberline {2}Framework}{3}{chapter.6}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {2.1}Django}{3}{section.7}}
\@writefile{toc}{\contentsline {section}{\numberline {2.2}Erweiterungen}{4}{section.8}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}Taggable-Manager}{4}{subsection.9}}
\@writefile{toc}{\contentsline {section}{\numberline {2.3}evtl. Bootstrap}{4}{section.10}}
\@writefile{toc}{\contentsline {chapter}{\numberline {3}Prototyp}{5}{chapter.11}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {3.1}Organisation}{5}{section.12}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.1}Verwaltung im Administrator-Backend}{6}{subsection.13}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.2}Berechtigungen der User}{6}{subsection.14}}
\@writefile{toc}{\contentsline {section}{\numberline {3.2}Funktionen}{6}{section.15}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}Abonnieren}{7}{subsection.16}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Filtern}{7}{subsection.17}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3}Benachrichtigungen}{7}{subsection.18}}
\@writefile{toc}{\contentsline {chapter}{\numberline {4}Ergebnis}{8}{chapter.19}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {4.1}Evaluierung}{8}{section.20}}
\@writefile{toc}{\contentsline {chapter}{\numberline {5}Zusammenfassung und Ausblick}{9}{chapter.21}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\vspace {2em}}
\@writefile{toc}{\contentsline {chapter}{\numberline {A}Anhang}{10}{appendix.22}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\vspace {2em}}
\bibstyle{unsrtnat}
\bibdata{Bibliography}
\@writefile{toc}{\contentsline {chapter}{Literaturverzeichnis}{12}{dummy.23}}
\newlabel{Literaturverzeichnis}{{3}{12}{Anhang}{dummy.23}{}}
@@ -1,8 +0,0 @@
\begin{thebibliography}{0}
\providecommand{\natexlab}[1]{#1}
\providecommand{\url}[1]{\texttt{#1}}
\expandafter\ifx\csname urlstyle\endcsname\relax
\providecommand{\doi}[1]{doi: #1}\else
\providecommand{\doi}{doi: \begingroup \urlstyle{rm}\Url}\fi
\end{thebibliography}
-48
View File
@@ -1,48 +0,0 @@
This is BibTeX, Version 0.99d (TeX Live 2018)
Capacity: max_strings=100000, hash_size=100000, hash_prime=85009
The top-level auxiliary file: /Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.aux
The style file: unsrtnat.bst
I found no \citation commands---while reading file /Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.aux
Database file #1: ../Bibliography.bib
You've used 0 entries,
2481 wiz_defined-function locations,
551 strings with 4539 characters,
and the built_in function-call counts, 34 in all, are:
= -- 0
> -- 0
< -- 0
+ -- 0
- -- 0
* -- 2
:= -- 11
add.period$ -- 0
call.type$ -- 0
change.case$ -- 0
chr.to.int$ -- 0
cite$ -- 0
duplicate$ -- 0
empty$ -- 1
format.name$ -- 0
if$ -- 1
int.to.chr$ -- 1
int.to.str$ -- 1
missing$ -- 0
newline$ -- 8
num.names$ -- 0
pop$ -- 0
preamble$ -- 1
purify$ -- 0
quote$ -- 0
skip$ -- 1
stack$ -- 0
substring$ -- 0
swap$ -- 0
text.length$ -- 0
text.prefix$ -- 0
top$ -- 0
type$ -- 0
warning$ -- 0
while$ -- 0
width$ -- 0
write$ -- 7
(There was 1 error message)
-568
View File
@@ -1,568 +0,0 @@
This is XeTeX, Version 3.14159265-2.6-0.99999 (TeX Live 2018) (preloaded format=xelatex 2018.6.7) 27 SEP 2018 17:21
entering extended mode
\write18 enabled.
file:line:error style messages enabled.
%&-line parsing enabled.
**Thesis.tex
(./Thesis.tex
LaTeX2e <2018-04-01> patch level 2
Babel <3.18> and hyphenation patterns for 84 language(s) loaded.
(./Thesis.cls
Document Class: Thesis 2007/22/02 v1.0 LaTeX document class
(/usr/local/texlive/2018/texmf-dist/tex/latex/base/book.cls
Document Class: book 2014/09/29 v1.4h Standard LaTeX document class
(/usr/local/texlive/2018/texmf-dist/tex/latex/base/bk12.clo
File: bk12.clo 2014/09/29 v1.4h Standard LaTeX file (size option)
)
\c@part=\count80
\c@chapter=\count81
\c@section=\count82
\c@subsection=\count83
\c@subsubsection=\count84
\c@paragraph=\count85
\c@subparagraph=\count86
\c@figure=\count87
\c@table=\count88
\abovecaptionskip=\skip41
\belowcaptionskip=\skip42
\bibindent=\dimen102
) (/usr/local/texlive/2018/texmf-dist/tex/latex/setspace/setspace.sty
Package: setspace 2011/12/19 v6.7a set line spacing
) (/usr/local/texlive/2018/texmf-dist/tex/latex/vmargin/vmargin.sty
Package: vmargin 2004/07/15 V2.5 set document margins (VK)
Package: vmargin 2004/07/15 V2.5 set document margins (VK)
\PaperWidth=\dimen103
\PaperHeight=\dimen104
) (/usr/local/texlive/2018/texmf-dist/tex/latex/fancyhdr/fancyhdr.sty
Package: fancyhdr 2017/06/30 v3.9a Extensive control of page headers and footers
\f@nch@headwidth=\skip43
\f@nch@O@elh=\skip44
\f@nch@O@erh=\skip45
\f@nch@O@olh=\skip46
\f@nch@O@orh=\skip47
\f@nch@O@elf=\skip48
\f@nch@O@erf=\skip49
\f@nch@O@olf=\skip50
\f@nch@O@orf=\skip51
) (/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsmath.sty
Package: amsmath 2017/09/02 v2.17a AMS math features
\@mathmargin=\skip52
For additional information on amsmath, use the `?' option.
(/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amstext.sty
Package: amstext 2000/06/29 v2.01 AMS text
(/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsgen.sty
File: amsgen.sty 1999/11/30 v2.0 generic functions
\@emptytoks=\toks14
\ex@=\dimen105
)) (/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsbsy.sty
Package: amsbsy 1999/11/29 v1.2d Bold Symbols
\pmbraise@=\dimen106
) (/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amsopn.sty
Package: amsopn 2016/03/08 v2.02 operator names
)
\inf@bad=\count89
LaTeX Info: Redefining \frac on input line 213.
\uproot@=\count90
\leftroot@=\count91
LaTeX Info: Redefining \overline on input line 375.
\classnum@=\count92
\DOTSCASE@=\count93
LaTeX Info: Redefining \ldots on input line 472.
LaTeX Info: Redefining \dots on input line 475.
LaTeX Info: Redefining \cdots on input line 596.
\Mathstrutbox@=\box26
\strutbox@=\box27
\big@size=\dimen107
LaTeX Font Info: Redeclaring font encoding OML on input line 712.
LaTeX Font Info: Redeclaring font encoding OMS on input line 713.
\macc@depth=\count94
\c@MaxMatrixCols=\count95
\dotsspace@=\muskip10
\c@parentequation=\count96
\dspbrk@lvl=\count97
\tag@help=\toks15
\row@=\count98
\column@=\count99
\maxfields@=\count100
\andhelp@=\toks16
\eqnshift@=\dimen108
\alignsep@=\dimen109
\tagshift@=\dimen110
\tagwidth@=\dimen111
\totwidth@=\dimen112
\lineht@=\dimen113
\@envbody=\toks17
\multlinegap=\skip53
\multlinetaggap=\skip54
\mathdisplay@stack=\toks18
LaTeX Info: Redefining \[ on input line 2817.
LaTeX Info: Redefining \] on input line 2818.
) (/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/amsfonts.sty
Package: amsfonts 2013/01/14 v3.01 Basic AMSFonts support
\symAMSa=\mathgroup4
\symAMSb=\mathgroup5
LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
(Font) U/euf/m/n --> U/euf/b/n on input line 106.
) (/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/amssymb.sty
Package: amssymb 2013/01/14 v3.01 AMS font symbols
) (/usr/local/texlive/2018/texmf-dist/tex/latex/amsmath/amscd.sty
Package: amscd 2017/04/14 v2.1 AMS Commutative Diagrams
\athelp@=\toks19
\minaw@=\dimen114
\bigaw@=\dimen115
\minCDarrowwidth=\dimen116
) (/usr/local/texlive/2018/texmf-dist/tex/latex/amscls/amsthm.sty
Package: amsthm 2017/10/31 v2.20.4
\thm@style=\toks20
\thm@bodyfont=\toks21
\thm@headfont=\toks22
\thm@notefont=\toks23
\thm@headpunct=\toks24
\thm@preskip=\skip55
\thm@postskip=\skip56
\thm@headsep=\skip57
\dth@everypar=\toks25
) (/usr/local/texlive/2018/texmf-dist/tex/latex/tools/xspace.sty
Package: xspace 2014/10/28 v1.13 Space after command names (DPC,MH)
)
\c@example=\count101
\c@theorem=\count102
(/usr/local/texlive/2018/texmf-dist/tex/latex/caption/caption.sty
Package: caption 2016/02/21 v3.3-144 Customizing captions (AR)
(/usr/local/texlive/2018/texmf-dist/tex/latex/caption/caption3.sty
Package: caption3 2016/05/22 v1.7-166 caption3 kernel (AR)
Package caption3 Info: TeX engine: e-TeX on input line 67.
(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/keyval.sty
Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
\KV@toks@=\toks26
)
\captionmargin=\dimen117
\captionmargin@=\dimen118
\captionwidth=\dimen119
\caption@tempdima=\dimen120
\caption@indent=\dimen121
\caption@parindent=\dimen122
\caption@hangindent=\dimen123
)
\c@ContinuedFloat=\count103
) (/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/graphicx.sty
Package: graphicx 2017/06/01 v1.1a Enhanced LaTeX Graphics (DPC,SPQR)
(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/graphics.sty
Package: graphics 2017/06/25 v1.2c Standard LaTeX Graphics (DPC,SPQR)
(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/trig.sty
Package: trig 2016/01/03 v1.10 sin cos tan (DPC)
) (/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
)
Package graphics Info: Driver file: xetex.def on input line 99.
(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-def/xetex.def
File: xetex.def 2017/06/24 v5.0h Graphics/color driver for xetex
))
\Gin@req@height=\dimen124
\Gin@req@width=\dimen125
) (/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/epstopdf.sty
Package: epstopdf 2016/05/15 v2.6 Conversion with epstopdf on the fly (HO)
(/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/epstopdf-base.sty
Package: epstopdf-base 2016/05/15 v2.6 Base part for package epstopdf
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/infwarerr.sty
Package: infwarerr 2016/05/16 v1.4 Providing info/warning/error messages (HO)
) (/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/grfext.sty
Package: grfext 2016/05/16 v1.2 Manage graphics extensions (HO)
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/kvdefinekeys.sty
Package: kvdefinekeys 2016/05/16 v1.4 Define keys (HO)
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/ltxcmds.sty
Package: ltxcmds 2016/05/16 v1.23 LaTeX kernel commands for general use (HO)
))) (/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/kvoptions.sty
Package: kvoptions 2016/05/16 v3.12 Key value format for package options (HO)
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/kvsetkeys.sty
Package: kvsetkeys 2016/05/16 v1.17 Key value parser (HO)
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/etexcmds.sty
Package: etexcmds 2016/05/16 v1.6 Avoid name clashes with e-TeX commands (HO)
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/ifluatex.sty
Package: ifluatex 2016/05/16 v1.4 Provides the ifluatex switch (HO)
Package ifluatex Info: LuaTeX not detected.
)
Package etexcmds Info: Could not find \expanded.
(etexcmds) That can mean that you are not using pdfTeX 1.50 or
(etexcmds) that some package has redefined \expanded.
(etexcmds) In the latter case, load this package earlier.
))) (/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/pdftexcmds.sty
Package: pdftexcmds 2018/01/30 v0.27 Utility functions of pdfTeX for LuaTeX (HO)
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/ifpdf.sty
Package: ifpdf 2017/03/15 v3.2 Provides the ifpdf switch
)
Package pdftexcmds Info: LuaTeX not detected.
Package pdftexcmds Info: pdfTeX >= 1.30 not detected.
Package pdftexcmds Info: \pdf@primitive is available.
Package pdftexcmds Info: \pdf@ifprimitive is available.
Package pdftexcmds Info: \pdfdraftmode not found.
)
Package epstopdf Warning: Drivers other than `pdftex' and `luatex' are not supported.
)) (/usr/local/texlive/2018/texmf-dist/tex/latex/subfigure/subfigure.sty
Package: subfigure 2002/03/15 v2.1.5 subfigure package
\subfigtopskip=\skip58
\subfigcapskip=\skip59
\subfigcaptopadj=\dimen126
\subfigbottomskip=\skip60
\subfigcapmargin=\dimen127
\subfiglabelskip=\skip61
\c@subfigure=\count104
\c@lofdepth=\count105
\c@subtable=\count106
\c@lotdepth=\count107
****************************************
* Local config file subfigure.cfg used *
****************************************
(/usr/local/texlive/2018/texmf-dist/tex/latex/subfigure/subfigure.cfg)
\subfig@top=\skip62
\subfig@bottom=\skip63
) (/usr/local/texlive/2018/texmf-dist/tex/latex/booktabs/booktabs.sty
Package: booktabs 2016/04/27 v1.618033 publication quality tables
\heavyrulewidth=\dimen128
\lightrulewidth=\dimen129
\cmidrulewidth=\dimen130
\belowrulesep=\dimen131
\belowbottomsep=\dimen132
\aboverulesep=\dimen133
\abovetopsep=\dimen134
\cmidrulesep=\dimen135
\cmidrulekern=\dimen136
\defaultaddspace=\dimen137
\@cmidla=\count108
\@cmidlb=\count109
\@aboverulesep=\dimen138
\@belowrulesep=\dimen139
\@thisruleclass=\count110
\@lastruleclass=\count111
\@thisrulewidth=\dimen140
) (/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/rotating.sty
Package: rotating 2016/08/11 v2.16d rotated objects in LaTeX
(/usr/local/texlive/2018/texmf-dist/tex/latex/base/ifthen.sty
Package: ifthen 2014/09/29 v1.1c Standard LaTeX ifthen package (DPC)
)
\c@r@tfl@t=\count112
\rotFPtop=\skip64
\rotFPbot=\skip65
\rot@float@box=\box28
\rot@mess@toks=\toks27
) (/usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.sty
\lst@mode=\count113
\lst@gtempboxa=\box29
\lst@token=\toks28
\lst@length=\count114
\lst@currlwidth=\dimen141
\lst@column=\count115
\lst@pos=\count116
\lst@lostspace=\dimen142
\lst@width=\dimen143
\lst@newlines=\count117
\lst@lineno=\count118
\lst@maxwidth=\dimen144
(./lstpatch.sty) (/usr/local/texlive/2018/texmf-dist/tex/latex/listings/lstmisc.sty
File: lstmisc.sty 2015/06/04 1.6 (Carsten Heinz)
\c@lstnumber=\count119
\lst@skipnumbers=\count120
\lst@framebox=\box30
) (/usr/local/texlive/2018/texmf-dist/tex/latex/listings/listings.cfg
File: listings.cfg 2015/06/04 1.6 listings configuration
))
Package: listings 2015/06/04 1.6 (Carsten Heinz)
(./lstpatch.sty) (/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/hyperref.sty
Package: hyperref 2018/02/06 v6.86b Hypertext links for LaTeX
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/hobsub-hyperref.sty
Package: hobsub-hyperref 2016/05/16 v1.14 Bundle oberdiek, subset hyperref (HO)
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/hobsub-generic.sty
Package: hobsub-generic 2016/05/16 v1.14 Bundle oberdiek, subset generic (HO)
Package: hobsub 2016/05/16 v1.14 Construct package bundles (HO)
Package hobsub Info: Skipping package `infwarerr' (already loaded).
Package hobsub Info: Skipping package `ltxcmds' (already loaded).
Package hobsub Info: Skipping package `ifluatex' (already loaded).
Package: ifvtex 2016/05/16 v1.6 Detect VTeX and its facilities (HO)
Package ifvtex Info: VTeX not detected.
Package: intcalc 2016/05/16 v1.2 Expandable calculations with integers (HO)
Package hobsub Info: Skipping package `ifpdf' (already loaded).
Package hobsub Info: Skipping package `etexcmds' (already loaded).
Package hobsub Info: Skipping package `kvsetkeys' (already loaded).
Package hobsub Info: Skipping package `kvdefinekeys' (already loaded).
Package hobsub Info: Skipping package `pdftexcmds' (already loaded).
Package: pdfescape 2016/05/16 v1.14 Implements pdfTeX's escape features (HO)
Package: bigintcalc 2016/05/16 v1.4 Expandable calculations on big integers (HO)
Package: bitset 2016/05/16 v1.2 Handle bit-vector datatype (HO)
Package: uniquecounter 2016/05/16 v1.3 Provide unlimited unique counter (HO)
)
Package hobsub Info: Skipping package `hobsub' (already loaded).
Package: letltxmacro 2016/05/16 v1.5 Let assignment for LaTeX macros (HO)
Package: hopatch 2016/05/16 v1.3 Wrapper for package hooks (HO)
Package: xcolor-patch 2016/05/16 xcolor patch
Package: atveryend 2016/05/16 v1.9 Hooks at the very end of document (HO)
Package atveryend Info: \enddocument detected (standard20110627).
Package: atbegshi 2016/06/09 v1.18 At begin shipout hook (HO)
Package: refcount 2016/05/16 v3.5 Data extraction from label references (HO)
Package: hycolor 2016/05/16 v1.8 Color options for hyperref/bookmark (HO)
) (/usr/local/texlive/2018/texmf-dist/tex/generic/ifxetex/ifxetex.sty
Package: ifxetex 2010/09/12 v0.6 Provides ifxetex conditional
) (/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/auxhook.sty
Package: auxhook 2016/05/16 v1.4 Hooks for auxiliary files (HO)
)
\@linkdim=\dimen145
\Hy@linkcounter=\count121
\Hy@pagecounter=\count122
(/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/pd1enc.def
File: pd1enc.def 2018/02/06 v6.86b Hyperref: PDFDocEncoding definition (HO)
)
\Hy@SavedSpaceFactor=\count123
(/usr/local/texlive/2018/texmf-dist/tex/latex/latexconfig/hyperref.cfg
File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
)
Package hyperref Info: Option `bookmarks' set `true' on input line 4383.
Package hyperref Info: Option `bookmarksopen' set `true' on input line 4383.
Package hyperref Info: Option `bookmarksnumbered' set `true' on input line 4383.
Package hyperref Info: Option `hypertexnames' set `false' on input line 4383.
Package hyperref Info: Option `colorlinks' set `true' on input line 4383.
Package hyperref Info: Option `unicode' set `true' on input line 4383.
(/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/puenc.def
File: puenc.def 2018/02/06 v6.86b Hyperref: PDF Unicode definition (HO)
)
Package hyperref Info: Option `breaklinks' set `true' on input line 4383.
Package hyperref Info: Hyper figures OFF on input line 4509.
Package hyperref Info: Link nesting OFF on input line 4514.
Package hyperref Info: Hyper index ON on input line 4517.
Package hyperref Info: Plain pages OFF on input line 4524.
Package hyperref Info: Backreferencing OFF on input line 4529.
Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
Package hyperref Info: Bookmarks ON on input line 4762.
\c@Hy@tempcnt=\count124
(/usr/local/texlive/2018/texmf-dist/tex/latex/url/url.sty
\Urlmuskip=\muskip11
Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
)
LaTeX Info: Redefining \url on input line 5115.
\XeTeXLinkMargin=\dimen146
\Fld@menulength=\count125
\Field@Width=\dimen147
\Fld@charsize=\dimen148
Package hyperref Info: Hyper figures OFF on input line 6369.
Package hyperref Info: Link nesting OFF on input line 6374.
Package hyperref Info: Hyper index ON on input line 6377.
Package hyperref Info: backreferencing OFF on input line 6384.
Package hyperref Info: Link coloring ON on input line 6387.
Package hyperref Info: Link coloring with OCG OFF on input line 6394.
Package hyperref Info: PDF/A mode OFF on input line 6399.
LaTeX Info: Redefining \ref on input line 6439.
LaTeX Info: Redefining \pageref on input line 6443.
\Hy@abspage=\count126
\c@Item=\count127
\c@Hfootnote=\count128
)
Package hyperref Info: Driver (autodetected): hxetex.
(/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/hxetex.def
File: hxetex.def 2018/02/06 v6.86b Hyperref driver for XeTeX
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/stringenc.sty
Package: stringenc 2016/05/16 v1.11 Convert strings between diff. encodings (HO)
)
\pdfm@box=\box31
\c@Hy@AnnotLevel=\count129
\HyField@AnnotCount=\count130
\Fld@listcount=\count131
\c@bookmark@seq@number=\count132
(/usr/local/texlive/2018/texmf-dist/tex/latex/oberdiek/rerunfilecheck.sty
Package: rerunfilecheck 2016/05/16 v1.8 Rerun checks for auxiliary files (HO)
Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 282.
)
\Hy@SectionHShift=\skip66
)
\c@dummy=\count133
) (/usr/local/texlive/2018/texmf-dist/tex/latex/titlesec/titlesec.sty
Package: titlesec 2016/03/21 v2.10.2 Sectioning titles
\ttl@box=\box32
\beforetitleunit=\skip67
\aftertitleunit=\skip68
\ttl@plus=\dimen149
\ttl@minus=\dimen150
\ttl@toksa=\toks29
\titlewidth=\dimen151
\titlewidthlast=\dimen152
\titlewidthfirst=\dimen153
) (/usr/local/texlive/2018/texmf-dist/tex/generic/babel/babel.sty
Package: babel 2018/02/14 3.18 The Babel package
(/usr/local/texlive/2018/texmf-dist/tex/generic/babel/switch.def
File: switch.def 2018/02/14 3.18 Babel switching mechanism
) (/usr/local/texlive/2018/texmf-dist/tex/generic/babel-german/ngerman.ldf
Language: ngerman 2018/03/29 v2.10 German support for babel (post-1996 orthography)
(/usr/local/texlive/2018/texmf-dist/tex/generic/babel-german/ngermanb.ldf
Language: ngermanb 2018/03/29 v2.10 German support for babel (post-1996 orthography)
(/usr/local/texlive/2018/texmf-dist/tex/generic/babel/babel.def
File: babel.def 2018/02/14 3.18 Babel common definitions
\babel@savecnt=\count134
\U@D=\dimen154
(/usr/local/texlive/2018/texmf-dist/tex/generic/babel/xebabel.def (/usr/local/texlive/2018/texmf-dist/tex/generic/babel/txtbabel.def))
\bbl@dirlevel=\count135
)
Package babel Info: Making " an active character on input line 121.
)))
Package hyperref Info: Option `colorlinks' set `true' on input line 15.
(/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.aux)
\openout1 = `Thesis.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 19.
LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 19.
LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 19.
LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 19.
LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for TU/lmr/m/n on input line 19.
LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 19.
LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 19.
LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 19.
LaTeX Font Info: ... okay on input line 19.
LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 19.
LaTeX Font Info: ... okay on input line 19.
Package caption Info: Begin \AtBeginDocument code.
Package caption Info: hyperref package is loaded.
Package caption Info: listings package is loaded.
Package caption Info: rotating package is loaded.
Package caption Info: subfigure package is loaded.
Package caption Info: End \AtBeginDocument code.
\c@lstlisting=\count136
\AtBeginShipoutBox=\box33
(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics/color.sty
Package: color 2016/07/10 v1.1e Standard LaTeX Color (DPC)
(/usr/local/texlive/2018/texmf-dist/tex/latex/graphics-cfg/color.cfg
File: color.cfg 2016/01/02 v1.6 sample color configuration
)
Package color Info: Driver file: xetex.def on input line 147.
)
Package hyperref Info: Link coloring ON on input line 19.
(/usr/local/texlive/2018/texmf-dist/tex/latex/hyperref/nameref.sty
Package: nameref 2016/05/21 v2.44 Cross-referencing by name of section
(/usr/local/texlive/2018/texmf-dist/tex/generic/oberdiek/gettitlestring.sty
Package: gettitlestring 2016/05/16 v1.5 Cleanup title references (HO)
)
\c@section@level=\count137
)
LaTeX Info: Redefining \ref on input line 19.
LaTeX Info: Redefining \pageref on input line 19.
LaTeX Info: Redefining \nameref on input line 19.
(/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.out) (/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.out)
\@outlinefile=\write3
\openout3 = `Thesis.out'.
------------------------------------------------------------------------------
Title Page
------------------------------------------------------------------------------
[1
]
------------------------------------------------------------------------------
Declaration of Authorship
------------------------------------------------------------------------------
LaTeX Font Info: Try loading font information for U+msa on input line 74.
(/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/umsa.fd
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
)
LaTeX Font Info: Try loading font information for U+msb on input line 74.
(/usr/local/texlive/2018/texmf-dist/tex/latex/amsfonts/umsb.fd
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
)
Underfull \hbox (badness 10000) in paragraph at lines 74--74
[]
[1
]
------------------------------------------------------------------------------
Abstract Page
------------------------------------------------------------------------------
[2
] (./Chapters/Chapter1.tex
Kapitel 1.
------------------------------------------------------------------------------
1 Einleitung
------------------------------------------------------------------------------
) [1
] (./Chapters/Chapter2.tex [2]
Kapitel 2.
------------------------------------------------------------------------------
2 Framework
------------------------------------------------------------------------------
[3
]) (./Chapters/Chapter3.tex [4]
Kapitel 3.
------------------------------------------------------------------------------
3 Prototyp
------------------------------------------------------------------------------
[5
] [6]) (./Chapters/Chapter4.tex [7]
Kapitel 4.
------------------------------------------------------------------------------
4 Ergebnis
------------------------------------------------------------------------------
) (./Chapters/Chapter5.tex [8
]
Kapitel 5.
------------------------------------------------------------------------------
5 Zusammenfassung und Ausblick
------------------------------------------------------------------------------
) (./Appendices/AppendixA.tex [9
]
Anhang A.
------------------------------------------------------------------------------
A Anhang
------------------------------------------------------------------------------
[10
]) [11]
------------------------------------------------------------------------------
Literaturverzeichnis
------------------------------------------------------------------------------
(/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.bbl
LaTeX Warning: Empty `thebibliography' environment on input line 8.
)
Package atveryend Info: Empty hook `BeforeClearDocument' on input line 139.
[12
]
Package atveryend Info: Empty hook `AfterLastShipout' on input line 139.
(/Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.aux)
Package atveryend Info: Empty hook `AtVeryEndDocument' on input line 139.
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 139.
Package rerunfilecheck Info: File `Thesis.out' has not changed.
(rerunfilecheck) Checksum: .
Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 139.
)
(\end occurred when \ifx on line 161 was incomplete)
Here is how much of TeX's memory you used:
12784 strings out of 492970
183565 string characters out of 6133939
282101 words of memory out of 5000000
16599 multiletter control sequences out of 15000+600000
6282 words of font info for 34 fonts, out of 8000000 for 9000
1348 hyphenation exceptions out of 8191
49i,11n,45p,13111b,360s stack positions out of 5000i,500n,10000p,200000b,80000s
Output written on /Users/Esthi/thesis_ek/doc/graduate-thesis/.texpadtmp/Thesis.pdf (15 pages).
-23
View File
@@ -1,23 +0,0 @@
\BOOKMARK [0][-]{dummy.1}{\376\377\000D\000e\000c\000l\000a\000r\000a\000t\000i\000o\000n\000\040\000o\000f\000\040\000A\000u\000t\000h\000o\000r\000s\000h\000i\000p}{}% 1
\BOOKMARK [0][-]{dummy.2}{\376\377\000A\000b\000s\000t\000r\000a\000k\000t}{}% 2
\BOOKMARK [0][-]{chapter.3}{\376\377\0001\000\040\000E\000i\000n\000l\000e\000i\000t\000u\000n\000g}{}% 3
\BOOKMARK [1][-]{section.4}{\376\377\0001\000.\0001\000\040\000A\000u\000s\000g\000a\000n\000g\000s\000i\000t\000u\000a\000t\000i\000o\000n}{chapter.3}% 4
\BOOKMARK [1][-]{section.5}{\376\377\0001\000.\0002\000\040\000Z\000i\000e\000l\000\040\000d\000e\000r\000\040\000A\000r\000b\000e\000i\000t}{chapter.3}% 5
\BOOKMARK [0][-]{chapter.6}{\376\377\0002\000\040\000F\000r\000a\000m\000e\000w\000o\000r\000k}{}% 6
\BOOKMARK [1][-]{section.7}{\376\377\0002\000.\0001\000\040\000D\000j\000a\000n\000g\000o}{chapter.6}% 7
\BOOKMARK [1][-]{section.8}{\376\377\0002\000.\0002\000\040\000E\000r\000w\000e\000i\000t\000e\000r\000u\000n\000g\000e\000n}{chapter.6}% 8
\BOOKMARK [2][-]{subsection.9}{\376\377\0002\000.\0002\000.\0001\000\040\000T\000a\000g\000g\000a\000b\000l\000e\000-\000M\000a\000n\000a\000g\000e\000r}{section.8}% 9
\BOOKMARK [1][-]{section.10}{\376\377\0002\000.\0003\000\040\000e\000v\000t\000l\000.\000\040\000B\000o\000o\000t\000s\000t\000r\000a\000p}{chapter.6}% 10
\BOOKMARK [0][-]{chapter.11}{\376\377\0003\000\040\000P\000r\000o\000t\000o\000t\000y\000p}{}% 11
\BOOKMARK [1][-]{section.12}{\376\377\0003\000.\0001\000\040\000O\000r\000g\000a\000n\000i\000s\000a\000t\000i\000o\000n}{chapter.11}% 12
\BOOKMARK [2][-]{subsection.13}{\376\377\0003\000.\0001\000.\0001\000\040\000V\000e\000r\000w\000a\000l\000t\000u\000n\000g\000\040\000i\000m\000\040\000A\000d\000m\000i\000n\000i\000s\000t\000r\000a\000t\000o\000r\000-\000B\000a\000c\000k\000e\000n\000d}{section.12}% 13
\BOOKMARK [2][-]{subsection.14}{\376\377\0003\000.\0001\000.\0002\000\040\000B\000e\000r\000e\000c\000h\000t\000i\000g\000u\000n\000g\000e\000n\000\040\000d\000e\000r\000\040\000U\000s\000e\000r}{section.12}% 14
\BOOKMARK [1][-]{section.15}{\376\377\0003\000.\0002\000\040\000F\000u\000n\000k\000t\000i\000o\000n\000e\000n}{chapter.11}% 15
\BOOKMARK [2][-]{subsection.16}{\376\377\0003\000.\0002\000.\0001\000\040\000A\000b\000o\000n\000n\000i\000e\000r\000e\000n}{section.15}% 16
\BOOKMARK [2][-]{subsection.17}{\376\377\0003\000.\0002\000.\0002\000\040\000F\000i\000l\000t\000e\000r\000n}{section.15}% 17
\BOOKMARK [2][-]{subsection.18}{\376\377\0003\000.\0002\000.\0003\000\040\000B\000e\000n\000a\000c\000h\000r\000i\000c\000h\000t\000i\000g\000u\000n\000g\000e\000n}{section.15}% 18
\BOOKMARK [0][-]{chapter.19}{\376\377\0004\000\040\000E\000r\000g\000e\000b\000n\000i\000s}{}% 19
\BOOKMARK [1][-]{section.20}{\376\377\0004\000.\0001\000\040\000E\000v\000a\000l\000u\000i\000e\000r\000u\000n\000g}{chapter.19}% 20
\BOOKMARK [0][-]{chapter.21}{\376\377\0005\000\040\000Z\000u\000s\000a\000m\000m\000e\000n\000f\000a\000s\000s\000u\000n\000g\000\040\000u\000n\000d\000\040\000A\000u\000s\000b\000l\000i\000c\000k}{}% 21
\BOOKMARK [0][-]{appendix.22}{\376\377\000A\000\040\000A\000n\000h\000a\000n\000g}{}% 22
\BOOKMARK [0][-]{dummy.23}{\376\377\000L\000i\000t\000e\000r\000a\000t\000u\000r\000v\000e\000r\000z\000e\000i\000c\000h\000n\000i\000s}{}% 23
Binary file not shown.
@@ -1,5 +0,0 @@
\contentsline {chapter}{Abstrakt}{}
\vspace {1em}\global \let \gdef empty{empty}
\vspace {2em}
\vspace {2em}
\contentsline {chapter}{}{}
@@ -1,11 +0,0 @@
\chapter{Anhang}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus at pulvinar nisi. Phasellus hendrerit, diam placerat interdum iaculis, mauris justo cursus risus, in viverra purus eros at ligula. Ut metus justo, consequat a tristique posuere, laoreet nec nibh. Etiam et scelerisque mauris. Phasellus vel massa magna. Ut non neque id tortor pharetra bibendum vitae sit amet nisi. Duis nec quam quam, sed euismod justo. Pellentesque eu tellus vitae ante tempus malesuada. Nunc accumsan, quam in congue consequat, lectus lectus dapibus erat, id aliquet urna neque at massa. Nulla facilisi. Morbi ullamcorper eleifend posuere. Donec libero leo, faucibus nec bibendum at, mattis et urna. Proin consectetur, nunc ut imperdiet lobortis, magna neque tincidunt lectus, id iaculis nisi justo id nibh. Pellentesque vel sem in erat vulputate faucibus molestie ut lorem.
Quisque tristique urna in lorem laoreet at laoreet quam congue. Donec dolor turpis, blandit non imperdiet aliquet, blandit et felis. In lorem nisi, pretium sit amet vestibulum sed, tempus et sem. Proin non ante turpis. Nulla imperdiet fringilla convallis. Vivamus vel bibendum nisl. Pellentesque justo lectus, molestie vel luctus sed, lobortis in libero. Nulla facilisi. Aliquam erat volutpat. Suspendisse vitae nunc nunc. Sed aliquet est suscipit sapien rhoncus non adipiscing nibh consequat. Aliquam metus urna, faucibus eu vulputate non, luctus eu justo.
Donec urna leo, vulputate vitae porta eu, vehicula blandit libero. Phasellus eget massa et leo condimentum mollis. Nullam molestie, justo at pellentesque vulputate, sapien velit ornare diam, nec gravida lacus augue non diam. Integer mattis lacus id libero ultrices sit amet mollis neque molestie. Integer ut leo eget mi volutpat congue. Vivamus sodales, turpis id venenatis placerat, tellus purus adipiscing magna, eu aliquam nibh dolor id nibh. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed cursus convallis quam nec vehicula. Sed vulputate neque eget odio fringilla ac sodales urna feugiat.
Phasellus nisi quam, volutpat non ullamcorper eget, congue fringilla leo. Cras et erat et nibh placerat commodo id ornare est. Nulla facilisi. Aenean pulvinar scelerisque eros eget interdum. Nunc pulvinar magna ut felis varius in hendrerit dolor accumsan. Nunc pellentesque magna quis magna bibendum non laoreet erat tincidunt. Nulla facilisi.
Duis eget massa sem, gravida interdum ipsum. Nulla nunc nisl, hendrerit sit amet commodo vel, varius id tellus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ac dolor est. Suspendisse ultrices tincidunt metus eget accumsan. Nullam facilisis, justo vitae convallis sollicitudin, eros augue malesuada metus, nec sagittis diam nibh ut sapien. Duis blandit lectus vitae lorem aliquam nec euismod nisi volutpat. Vestibulum ornare dictum tortor, at faucibus justo tempor non. Nulla facilisi. Cras non massa nunc, eget euismod purus. Nunc metus ipsum, euismod a consectetur vel, hendrerit nec nunc.
@@ -1,11 +0,0 @@
\chapter{An Appendix}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus at pulvinar nisi. Phasellus hendrerit, diam placerat interdum iaculis, mauris justo cursus risus, in viverra purus eros at ligula. Ut metus justo, consequat a tristique posuere, laoreet nec nibh. Etiam et scelerisque mauris. Phasellus vel massa magna. Ut non neque id tortor pharetra bibendum vitae sit amet nisi. Duis nec quam quam, sed euismod justo. Pellentesque eu tellus vitae ante tempus malesuada. Nunc accumsan, quam in congue consequat, lectus lectus dapibus erat, id aliquet urna neque at massa. Nulla facilisi. Morbi ullamcorper eleifend posuere. Donec libero leo, faucibus nec bibendum at, mattis et urna. Proin consectetur, nunc ut imperdiet lobortis, magna neque tincidunt lectus, id iaculis nisi justo id nibh. Pellentesque vel sem in erat vulputate faucibus molestie ut lorem.
Quisque tristique urna in lorem laoreet at laoreet quam congue. Donec dolor turpis, blandit non imperdiet aliquet, blandit et felis. In lorem nisi, pretium sit amet vestibulum sed, tempus et sem. Proin non ante turpis. Nulla imperdiet fringilla convallis. Vivamus vel bibendum nisl. Pellentesque justo lectus, molestie vel luctus sed, lobortis in libero. Nulla facilisi. Aliquam erat volutpat. Suspendisse vitae nunc nunc. Sed aliquet est suscipit sapien rhoncus non adipiscing nibh consequat. Aliquam metus urna, faucibus eu vulputate non, luctus eu justo.
Donec urna leo, vulputate vitae porta eu, vehicula blandit libero. Phasellus eget massa et leo condimentum mollis. Nullam molestie, justo at pellentesque vulputate, sapien velit ornare diam, nec gravida lacus augue non diam. Integer mattis lacus id libero ultrices sit amet mollis neque molestie. Integer ut leo eget mi volutpat congue. Vivamus sodales, turpis id venenatis placerat, tellus purus adipiscing magna, eu aliquam nibh dolor id nibh. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed cursus convallis quam nec vehicula. Sed vulputate neque eget odio fringilla ac sodales urna feugiat.
Phasellus nisi quam, volutpat non ullamcorper eget, congue fringilla leo. Cras et erat et nibh placerat commodo id ornare est. Nulla facilisi. Aenean pulvinar scelerisque eros eget interdum. Nunc pulvinar magna ut felis varius in hendrerit dolor accumsan. Nunc pellentesque magna quis magna bibendum non laoreet erat tincidunt. Nulla facilisi.
Duis eget massa sem, gravida interdum ipsum. Nulla nunc nisl, hendrerit sit amet commodo vel, varius id tellus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc ac dolor est. Suspendisse ultrices tincidunt metus eget accumsan. Nullam facilisis, justo vitae convallis sollicitudin, eros augue malesuada metus, nec sagittis diam nibh ut sapien. Duis blandit lectus vitae lorem aliquam nec euismod nisi volutpat. Vestibulum ornare dictum tortor, at faucibus justo tempor non. Nulla facilisi. Cras non massa nunc, eget euismod purus. Nunc metus ipsum, euismod a consectetur vel, hendrerit nec nunc.
-40
View File
@@ -1,40 +0,0 @@
@article{Reference1,
Abstract = {We have developed an enhanced Littrow configuration extended cavity diode laser (ECDL) that can be tuned without changing the direction of the output beam. The output of a conventional Littrow ECDL is reflected from a plane mirror fixed parallel to the tuning diffraction grating. Using a free-space Michelson wavemeter to measure the laser wavelength, we can tune the laser over a range greater than 10 nm without any alteration of alignment.},
Author = {C. J. Hawthorn and K. P. Weber and R. E. Scholten},
Journal = {Review of Scientific Instruments},
Month = {December},
Number = {12},
Numpages = {3},
Pages = {4477--4479},
Title = {Littrow Configuration Tunable External Cavity Diode Laser with Fixed Direction Output Beam},
Volume = {72},
Url = {http://link.aip.org/link/?RSI/72/4477/1},
Year = {2001}}
@article{Reference3,
Abstract = {Operating a laser diode in an extended cavity which provides frequency-selective feedback is a very effective method of reducing the laser's linewidth and improving its tunability. We have developed an extremely simple laser of this type, built from inexpensive commercial components with only a few minor modifications. A 780~nm laser built to this design has an output power of 80~mW, a linewidth of 350~kHz, and it has been continuously locked to a Doppler-free rubidium transition for several days.},
Author = {A. S. Arnold and J. S. Wilson and M. G. Boshier},
Journal = {Review of Scientific Instruments},
Month = {March},
Number = {3},
Numpages = {4},
Pages = {1236--1239},
Title = {A Simple Extended-Cavity Diode Laser},
Volume = {69},
Url = {http://link.aip.org/link/?RSI/69/1236/1},
Year = {1998}}
@article{Reference2,
Abstract = {We present a review of the use of diode lasers in atomic physics with an extensive list of references. We discuss the relevant characteristics of diode lasers and explain how to purchase and use them. We also review the various techniques that have been used to control and narrow the spectral outputs of diode lasers. Finally we present a number of examples illustrating the use of diode lasers in atomic physics experiments. Review of Scientific Instruments is copyrighted by The American Institute of Physics.},
Author = {Carl E. Wieman and Leo Hollberg},
Journal = {Review of Scientific Instruments},
Keywords = {Diode Laser},
Month = {January},
Number = {1},
Numpages = {20},
Pages = {1--20},
Title = {Using Diode Lasers for Atomic Physics},
Volume = {62},
Url = {http://link.aip.org/link/?RSI/62/1/1},
Year = {1991}}
Whitespace-only changes.
Whitespace-only changes.
-18
View File
@@ -1,18 +0,0 @@
\chapter{Einleitung}
Die vorliegende Arbeit beschäftigt sich mit der wachsenden E-Mail-Flut in den Postfächern der Studierenden und wie man diese reduzieren kann.
Hinführung zum thema mit verschd Quellen?
Hierfür wird eine Social Media Plattform mit personalisierbarem Dashboard implementiert.
Social Media Plattform (recherche)
\section{Ausgangsituation}
Alle Informationen der Fakultät Elektrotechnik Feinwerktechnik Informationstechnik, kurz efi, werden über die globalen Verteiler des Hochschulinternen Postfaches versendet. Dies erzeugt eine Flut an verschiedensten Daten im Posteingang jedes Einzelnen. Viele dieser Daten sind jedoch nur für eine geringe Schnittmenge der Empfänger relevant und lassen sich nur schwer priorisieren. Das ständig überlastete Postfach muss somit regelmäßig gepflegt werden. Einen massiven Administrativen Aufwand bedeutet es, E-Mails zu filtern und nach persönlichem Ermessen zu verwalten.
Zudem leidet die Nachhaltigkeit der Informationen. Möchten die Empfänger ältere E-Mails abrufen, mussten diese meist schon entfernt werden um Platz für den neuen, eintreffenden E-Mail-Verkehr zu schaffen.
Diese Situation führt dazu, dass Empfänger die Informationen meist nicht lesen und sofort entfernen. Die Ersteller dieser haben keinerlei Möglichkeiten zu überprüfen ob und wie viele Studierende und Dozenten eingehende Nachrichten öffnen und lesen.
\section{Ziel der Arbeit}
Ziel der Arbeit ist es, durch die Einbindung einer Social Media Plattform den Speicheraufwand des Hochschulpostfaches für Studierende der Efi-Fakultät zu reduzieren. Die Flut an E-Mails soll durch das Verwenden eines personalisierte Dashboard gedrosselt werden. Hierbei wird zunächst der Fokus auf die grundlegenden Funktionen der Website wert gelegt.
Zudem sollen die Verfasser der Informationen benachrichtigt werden, in welchem Umfang die hochgeladenen Informationen bereits abonniert und gelesen wurden.
Whitespace-only changes.
-20
View File
@@ -1,20 +0,0 @@
\chapter{Framework}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus at pulvinar nisi. Phasellus hendrerit, diam placerat interdum iaculis, mauris justo cursus risus, in viverra purus eros at ligula. Ut metus justo, consequat a tristique posuere, laoreet nec nibh. Etiam et scelerisque mauris. Phasellus vel massa magna. Ut non neque id tortor pharetra bibendum vitae sit amet nisi. Duis nec quam quam, sed euismod justo. Pellentesque eu tellus vitae ante tempus malesuada. Nunc accumsan, quam in congue consequat, lectus lectus dapibus erat, id aliquet urna neque at massa. Nulla facilisi. Morbi ullamcorper eleifend posuere. Donec libero leo, faucibus nec bibendum at, mattis et urna. Proin consectetur, nunc ut imperdiet lobortis, magna neque tincidunt lectus, id iaculis nisi justo id nibh. Pellentesque vel sem in erat vulputate faucibus molestie ut lorem.
\section{Django}
Quisque tristique urna in lorem laoreet at laoreet quam congue. Donec dolor turpis, blandit non imperdiet aliquet, blandit et felis. In lorem nisi, pretium sit amet vestibulum sed, tempus et sem. Proin non ante turpis. Nulla imperdiet fringilla convallis. Vivamus vel bibendum nisl. Pellentesque justo lectus, molestie vel luctus sed, lobortis in libero. Nulla facilisi. Aliquam erat volutpat. Suspendisse vitae nunc nunc. Sed aliquet est suscipit sapien rhoncus non adipiscing nibh consequat. Aliquam metus urna, faucibus eu vulputate non, luctus eu justo.
\section{Erweiterungen}
Donec urna leo, vulputate vitae porta eu, vehicula blandit libero. Phasellus eget massa et leo condimentum mollis. Nullam molestie, justo at pellentesque vulputate, sapien velit ornare diam, nec gravida lacus augue non diam. Integer mattis lacus id libero ultrices sit amet mollis neque molestie. Integer ut leo eget mi volutpat congue. Vivamus sodales, turpis id venenatis placerat, tellus purus adipiscing magna, eu aliquam nibh dolor id nibh. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed cursus convallis quam nec vehicula. Sed vulputate neque eget odio fringilla ac sodales urna feugiat.
\subsection{Taggable-Manager}
Donec urna leo, vulputate vitae porta eu, vehicula blandit libero. Phasellus eget massa et leo condimentum mollis. Nullam molestie, justo at pellentesque vulputate, sapien velit ornare diam, nec gravida lacus augue non diam. Integer mattis lacus id libero ultrices sit amet mollis neque molestie. Integer ut leo eget mi volutpat congue. Vivamus sodales, turpis id venenatis placerat, tellus purus adipiscing magna, eu aliquam nibh dolor id nibh. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed cursus convallis quam nec vehicula. Sed vulputate neque eget odio fringilla ac sodales urna feugiat.
\section{evtl. Bootstrap}
Quisque tristique urna in lorem laoreet at laoreet quam congue. Donec dolor turpis, blandit non imperdiet aliquet, blandit et felis. In lorem nisi, pretium sit amet vestibulum sed, tempus et sem. Proin non ante turpis. Nulla imperdiet fringilla convallis. Vivamus vel bibendum nisl. Pellentesque justo lectus, molestie vel luctus sed, lobortis in libero. Nulla facilisi. Aliquam erat volutpat. Suspendisse vitae nunc nunc. Sed aliquet est suscipit sapien rhoncus non adipiscing nibh consequat. Aliquam metus urna, faucibus eu vulputate non, luctus eu justo.
Whitespace-only changes.
-35
View File
@@ -1,35 +0,0 @@
\chapter{Prototyp}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus at pulvinar nisi. Phasellus hendrerit, diam placerat interdum iaculis, mauris justo cursus risus, in viverra purus eros at ligula. Ut metus justo, consequat a tristique posuere, laoreet nec nibh. Etiam et scelerisque mauris. Phasellus vel massa magna. Ut non neque id tortor pharetra bibendum vitae sit amet nisi. Duis nec quam quam, sed euismod justo. Pellentesque eu tellus vitae ante tempus malesuada. Nunc accumsan, quam in congue consequat, lectus lectus dapibus erat, id aliquet urna neque at massa. Nulla facilisi. Morbi ullamcorper eleifend posuere. Donec libero leo, faucibus nec bibendum at, mattis et urna. Proin consectetur, nunc ut imperdiet lobortis, magna neque tincidunt lectus, id iaculis nisi justo id nibh. Pellentesque vel sem in erat vulputate faucibus molestie ut lorem.
\section{Organisation}
Quisque tristique urna in lorem laoreet at laoreet quam congue. Donec dolor turpis, blandit non imperdiet aliquet, blandit et felis. In lorem nisi, pretium sit amet vestibulum sed, tempus et sem. Proin non ante turpis. Nulla imperdiet fringilla convallis. Vivamus vel bibendum nisl. Pellentesque justo lectus, molestie vel luctus sed, lobortis in libero. Nulla facilisi. Aliquam erat volutpat. Suspendisse vitae nunc nunc. Sed aliquet est suscipit sapien rhoncus non adipiscing nibh consequat. Aliquam metus urna, faucibus eu vulputate non, luctus eu justo.
\subsection{Verwaltung im Administrator-Backend}
Donec urna leo, vulputate vitae porta eu, vehicula blandit libero. Phasellus eget massa et leo condimentum mollis. Nullam molestie, justo at pellentesque vulputate, sapien velit ornare diam, nec gravida lacus augue non diam. Integer mattis lacus id libero ultrices sit amet mollis neque molestie. Integer ut leo eget mi volutpat congue. Vivamus sodales, turpis id venenatis placerat, tellus purus adipiscing magna, eu aliquam nibh dolor id nibh. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed cursus convallis quam nec vehicula. Sed vulputate neque eget odio fringilla ac sodales urna feugiat.
\subsection{Berechtigungen der User}
Donec urna leo, vulputate vitae porta eu, vehicula blandit libero. Phasellus eget massa et leo condimentum mollis. Nullam molestie, justo at pellentesque vulputate, sapien velit ornare diam, nec gravida lacus augue non diam. Integer mattis lacus id libero ultrices sit amet mollis neque molestie. Integer ut leo eget mi volutpat congue. Vivamus sodales, turpis id venenatis placerat, tellus purus adipiscing magna, eu aliquam nibh dolor id nibh. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed cursus convallis quam nec vehicula. Sed vulputate neque eget odio fringilla ac sodales urna feugiat.
\section{Funktionen}
Quisque tristique urna in lorem laoreet at laoreet quam congue. Donec dolor turpis, blandit non imperdiet aliquet, blandit et felis. In lorem nisi, pretium sit amet vestibulum sed, tempus et sem. Proin non ante turpis. Nulla imperdiet fringilla convallis. Vivamus vel bibendum nisl. Pellentesque justo lectus, molestie vel luctus sed, lobortis in libero. Nulla facilisi. Aliquam erat volutpat. Suspendisse vitae nunc nunc. Sed aliquet est suscipit sapien rhoncus non adipiscing nibh consequat. Aliquam metus urna, faucibus eu vulputate non, luctus eu justo.
\subsection{Abonnieren}
Donec urna leo, vulputate vitae porta eu, vehicula blandit libero. Phasellus eget massa et leo condimentum mollis. Nullam molestie, justo at pellentesque vulputate, sapien velit ornare diam, nec gravida lacus augue non diam. Integer mattis lacus id libero ultrices sit amet mollis neque molestie. Integer ut leo eget mi volutpat congue. Vivamus sodales, turpis id venenatis placerat, tellus purus adipiscing magna, eu aliquam nibh dolor id nibh. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed cursus convallis quam nec vehicula. Sed vulputate neque eget odio fringilla ac sodales urna feugiat.
\subsection{Filtern}
Donec urna leo, vulputate vitae porta eu, vehicula blandit libero. Phasellus eget massa et leo condimentum mollis. Nullam molestie, justo at pellentesque vulputate, sapien velit ornare diam, nec gravida lacus augue non diam. Integer mattis lacus id libero ultrices sit amet mollis neque molestie. Integer ut leo eget mi volutpat congue. Vivamus sodales, turpis id venenatis placerat, tellus purus adipiscing magna, eu aliquam nibh dolor id nibh. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed cursus convallis quam nec vehicula. Sed vulputate neque eget odio fringilla ac sodales urna feugiat.
\subsection{Benachrichtigungen}
Donec urna leo, vulputate vitae porta eu, vehicula blandit libero. Phasellus eget massa et leo condimentum mollis. Nullam molestie, justo at pellentesque vulputate, sapien velit ornare diam, nec gravida lacus augue non diam. Integer mattis lacus id libero ultrices sit amet mollis neque molestie. Integer ut leo eget mi volutpat congue. Vivamus sodales, turpis id venenatis placerat, tellus purus adipiscing magna, eu aliquam nibh dolor id nibh. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed cursus convallis quam nec vehicula. Sed vulputate neque eget odio fringilla ac sodales urna feugiat.
Whitespace-only changes.
@@ -1,8 +0,0 @@
\chapter{Ergebnis}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus at pulvinar nisi. Phasellus hendrerit, diam placerat interdum iaculis, mauris justo cursus risus, in viverra purus eros at ligula. Ut metus justo, consequat a tristique posuere, laoreet nec nibh. Etiam et scelerisque mauris. Phasellus vel massa magna. Ut non neque id tortor pharetra bibendum vitae sit amet nisi. Duis nec quam quam, sed euismod justo. Pellentesque eu tellus vitae ante tempus malesuada. Nunc accumsan, quam in congue consequat, lectus lectus dapibus erat, id aliquet urna neque at massa. Nulla facilisi. Morbi ullamcorper eleifend posuere. Donec libero leo, faucibus nec bibendum at, mattis et urna. Proin consectetur, nunc ut imperdiet lobortis, magna neque tincidunt lectus, id iaculis nisi justo id nibh. Pellentesque vel sem in erat vulputate faucibus molestie ut lorem.
\section{Evaluierung}
Quisque tristique urna in lorem laoreet at laoreet quam congue. Donec dolor turpis, blandit non imperdiet aliquet, blandit et felis. In lorem nisi, pretium sit amet vestibulum sed, tempus et sem. Proin non ante turpis. Nulla imperdiet fringilla convallis. Vivamus vel bibendum nisl. Pellentesque justo lectus, molestie vel luctus sed, lobortis in libero. Nulla facilisi. Aliquam erat volutpat. Suspendisse vitae nunc nunc. Sed aliquet est suscipit sapien rhoncus non adipiscing nibh consequat. Aliquam metus urna, faucibus eu vulputate non, luctus eu justo.
Whitespace-only changes.
@@ -1,3 +0,0 @@
\chapter{Zusammenfassung und Ausblick}
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus at pulvinar nisi. Phasellus hendrerit, diam placerat interdum iaculis, mauris justo cursus risus, in viverra purus eros at ligula. Ut metus justo, consequat a tristique posuere, laoreet nec nibh. Etiam et scelerisque mauris. Phasellus vel massa magna. Ut non neque id tortor pharetra bibendum vitae sit amet nisi. Duis nec quam quam, sed euismod justo. Pellentesque eu tellus vitae ante tempus malesuada. Nunc accumsan, quam in congue consequat, lectus lectus dapibus erat, id aliquet urna neque at massa. Nulla facilisi. Morbi ullamcorper eleifend posuere. Donec libero leo, faucibus nec bibendum at, mattis et urna. Proin consectetur, nunc ut imperdiet lobortis, magna neque tincidunt lectus, id iaculis nisi justo id nibh. Pellentesque vel sem in erat vulputate faucibus molestie ut lorem.
-294
View File
@@ -1,294 +0,0 @@
\NeedsTeXFormat{LaTeX2e}[1996/12/01]
\ProvidesClass{Thesis}
[2007/22/02 v1.0
LaTeX document class]
\def\baseclass{book}
\DeclareOption*{\PassOptionsToClass{\CurrentOption}{\baseclass}}
\def\@checkoptions#1#2{
\edef\@curroptions{\@ptionlist{\@currname.\@currext}}
\@tempswafalse
\@tfor\@this:=#2\do{
\@expandtwoargs\in@{,\@this,}{,\@curroptions,}
\ifin@ \@tempswatrue \@break@tfor \fi}
\let\@this\@empty
\if@tempswa \else \PassOptionsToClass{#1}{\baseclass}\fi
}
\@checkoptions{11pt}{{10pt}{11pt}{12pt}}
\PassOptionsToClass{a4paper}{\baseclass}
\ProcessOptions\relax
\LoadClass{\baseclass}
\newcommand\bhrule{\typeout{------------------------------------------------------------------------------}}
\newcommand\Declaration[1]{
\btypeout{Declaration of Authorship}
\addtotoc{Declaration of Authorship}
\thispagestyle{plain}
\null\vfil
%\vskip 60\p@
\begin{center}{\huge\bf Declaration of Authorship\par}\end{center}
%\vskip 60\p@
{\normalsize #1}
\vfil\vfil\null
%\cleardoublepage
}
\newcommand\btypeout[1]{\bhrule\typeout{\space #1}\bhrule}
\def\today{\ifcase\month\or
January\or February\or March\or April\or May\or June\or
July\or August\or September\or October\or November\or December\fi
\space \number\year}
\usepackage{setspace}
\onehalfspacing
\setlength{\parindent}{0pt}
\setlength{\parskip}{2.0ex plus0.5ex minus0.2ex}
\usepackage{vmargin}
\setmarginsrb { 1.5in} % left margin
{ 0.6in} % top margin
{ 1.0in} % right margin
{ 0.8in} % bottom margin
{ 20pt} % head height
{0.25in} % head sep
{ 9pt} % foot height
{ 0.3in} % foot sep
\raggedbottom
\setlength{\topskip}{1\topskip \@plus 5\p@}
\doublehyphendemerits=10000 % No consecutive line hyphens.
\brokenpenalty=10000 % No broken words across columns/pages.
\widowpenalty=9999 % Almost no widows at bottom of page.
\clubpenalty=9999 % Almost no orphans at top of page.
\interfootnotelinepenalty=9999 % Almost never break footnotes.
\usepackage{fancyhdr}
\lhead[\rm\thepage]{\fancyplain{}{\sl{\rightmark}}}
\rhead[\fancyplain{}{\sl{\leftmark}}]{\rm\thepage}
\chead{}\lfoot{}\rfoot{}\cfoot{}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\btypeout{\thechapter\space #1}\markboth{\@chapapp\ \thechapter\ #1}{\@chapapp\ \thechapter\ #1}}
\renewcommand{\sectionmark}[1]{}
\renewcommand{\subsectionmark}[1]{}
\def\cleardoublepage{\clearpage\if@twoside \ifodd\c@page\else
\hbox{}
\thispagestyle{empty}
\newpage
\if@twocolumn\hbox{}\newpage\fi\fi\fi}
\usepackage{amsmath,amsfonts,amssymb,amscd,amsthm,xspace}
\theoremstyle{plain}
\newtheorem{example}{Example}[chapter]
\newtheorem{theorem}{Theorem}[chapter]
\newtheorem{corollary}[theorem]{Corollary}
\newtheorem{lemma}[theorem]{Lemma}
\newtheorem{proposition}[theorem]{Proposition}
\newtheorem{axiom}[theorem]{Axiom}
\theoremstyle{definition}
\newtheorem{definition}[theorem]{Definition}
\theoremstyle{remark}
\newtheorem{remark}[theorem]{Remark}
\usepackage[centerlast,small,sc]{caption}
\setlength{\captionmargin}{20pt}
\newcommand{\fref}[1]{Figure~\ref{#1}}
\newcommand{\tref}[1]{Table~\ref{#1}}
\newcommand{\eref}[1]{Equation~\ref{#1}}
\newcommand{\cref}[1]{Chapter~\ref{#1}}
\newcommand{\sref}[1]{Section~\ref{#1}}
\newcommand{\aref}[1]{Appendix~\ref{#1}}
\renewcommand{\topfraction}{0.85}
\renewcommand{\bottomfraction}{.85}
\renewcommand{\textfraction}{0.1}
\renewcommand{\dbltopfraction}{.85}
\renewcommand{\floatpagefraction}{0.75}
\renewcommand{\dblfloatpagefraction}{.75}
\setcounter{topnumber}{9}
\setcounter{bottomnumber}{9}
\setcounter{totalnumber}{20}
\setcounter{dbltopnumber}{9}
\usepackage{graphicx}
\usepackage{epstopdf}
\usepackage[scriptsize]{subfigure}
\usepackage{booktabs}
\usepackage{rotating}
\usepackage{listings}
\usepackage{lstpatch}
\lstset{captionpos=b,
frame=tb,
basicstyle=\scriptsize\ttfamily,
showstringspaces=false,
keepspaces=true}
\lstdefinestyle{matlab} {
language=Matlab,
keywordstyle=\color{black},
commentstyle=\color[rgb]{0.13,0.55,0.13}\em,
stringstyle=\color[rgb]{0.7,0,0} }
\usepackage[pdfpagemode={UseOutlines},bookmarks=true,bookmarksopen=true,
bookmarksopenlevel=0,bookmarksnumbered=true,hypertexnames=false,
colorlinks,linkcolor={black},citecolor={black},urlcolor={black},
pdfstartview={FitV},unicode,breaklinks=true]{hyperref}
\pdfstringdefDisableCommands{
\let\\\space
}
\newcommand*{\supervisor}[1]{\def\supname{#1}}
\newcommand*{\examiner}[1]{\def\examname{#1}}
\newcommand*{\degree}[1]{\def\degreename{#1}}
\newcommand*{\authors}[1]{\def\authornames{#1}}
\newcommand*{\addresses}[1]{\def\addressnames{#1}}
\newcommand*{\university}[1]{\def\univname{#1}}
\newcommand*{\UNIVERSITY}[1]{\def\UNIVNAME{#1}}
\newcommand*{\department}[1]{\def\deptname{#1}}
\newcommand*{\DEPARTMENT}[1]{\def\DEPTNAME{#1}}
\newcommand*{\group}[1]{\def\groupname{#1}}
\newcommand*{\GROUP}[1]{\def\GROUPNAME{#1}}
\newcommand*{\faculty}[1]{\def\facname{#1}}
\newcommand*{\FACULTY}[1]{\def\FACNAME{#1}}
\newcommand*{\subject}[1]{\def\subjectname{#1}}
\newcommand*{\keywords}[1]{\def\keywordnames{#1}}
\supervisor {}
\examiner {}
\degree {}
\authors {}
\university {\texorpdfstring{\href{University Web Site URL Here (include http://)}
{Technische Hochschule Nürnberg}}
{Technische Hochschule Nürnberg}}
\UNIVERSITY {\texorpdfstring{\href{University Web Site URL Here (include http://)}
{TECHNISCHE HOCHSCHULE NÜRNBERG}}
{TECHNISCHE HOCHSCHULE NÜRNBERG}}
\department {\texorpdfstring{\href{Department or School Web Site URL Here (include http://)}
{Fakultät Elektrotechnik Feinwerktechnik Informationstechnik}}
{Fakultät Elektrotechnik Feinwerktechnik Informationstechnik}}
\DEPARTMENT {\texorpdfstring{\href{Department or School Web Site URL Here (include http://)}
{FAKULTÄT ELEKTROTECHNIK FEINWERKTECHNIK INFORMATIONSTECHNIK}}
{FAKULTÄT ELEKTROTECHNIK FEINWERKTECHNIK INFORMATIONSTECHNIK}}
\group {\texorpdfstring{\href{Research Group Web Site URL Here (include http://)}
{Studiegang Medie Engineering}}
{Studiegang Medie Engineering}}
\GROUP {\texorpdfstring{\href{Research Group Web Site URL Here (include http://)}
{RESEARCH GROUP NAME (IN BLOCK CAPITALS)}}
{RESEARCH GROUP NAME (IN BLOCK CAPITALS)}}
\faculty {\texorpdfstring{\href{Faculty Web Site URL Here (include http://)}
{Fakultät Elektrotechnik Feinwerktechnik Informationstechnik}}
{Fakultät Elektrotechnik Feinwerktechnik Informationstechnik}}
\FACULTY {\texorpdfstring{\href{Faculty Web Site URL Here (include http://)}
{FAKULTÄT ELEKTROTECHNIK FEINWERKTECHNIK INFORMATIONSTECHNIK}}
{FAKULTÄT ELEKTROTECHNIK FEINWERKTECHNIK INFORMATIONSTECHNIK}}
\addresses {}
\subject {}
\keywords {}
\renewcommand\maketitle{
\btypeout{Title Page}
\hypersetup{pdftitle={\@title}}
\hypersetup{pdfsubject=\subjectname}
\hypersetup{pdfauthor=\authornames}
\hypersetup{pdfkeywords=\keywordnames}
\thispagestyle{empty}
\begin{titlepage}
\let\footnotesize\small
\let\footnoterule\relax
\let \footnote \thanks
\setcounter{footnote}{0}
\vskip 60\p@
\begin{center}
\setlength{\parskip}{0pt}
{\text{\univname}\par}
{\facname \par}
\bigskip
\bigskip
{ \groupname \par}
\bigskip
\bigskip
\bigskip
{ Bachelor-Arbeit von \par}
{ \authornames \par}
\bigskip
\bigskip
{ \@title \par}
\bigskip
\bigskip
\bigskip
\bigskip
\bigskip
\bigskip
{WS 2018/2019 \par}
\vfill
\begin{flushleft}
{Abgabedatum: \@date\par}
{Betreuer: Prof. Dr. Oliver Hofmann}
\end{flushleft}
\bigskip
\end{center}
\par
\@thanks
\vfil\null
\end{titlepage}
\setcounter{footnote}{0}%
\global\let\thanks\relax
\global\let\maketitle\relax
\global\let\@thanks\@empty
\global\let\@author\@empty
\global\let\@date\@empty
\global\let\@title\@empty
\global\let\title\relax
\global\let\author\relax
\global\let\date\relax
\global\let\and\relax
\cleardoublepage
}
\newenvironment{abstract}
{
\btypeout{Abstract Page}
\thispagestyle{empty}
\begin{center}
{{\text{Abstrakt}} \par}
\bigskip
\bigskip
\bigskip
{\normalsize\bf \@title \par}
\medskip
\bigskip
\end{center}
}
{
\vfil\vfil\vfil\null
\cleardoublepage
}
\addtocounter{secnumdepth}{1}
\setcounter{tocdepth}{6}
\newcounter{dummy}
\newcommand\addtotoc[1]{
\refstepcounter{dummy}
\addcontentsline{toc}{chapter}{#1}}
\renewcommand\tableofcontents{
\btypeout{Table of Contents}
\begin{spacing}{1}{
\setlength{\parskip}{1pt}
\if@twocolumn
\@restonecoltrue\onecolumn
\else
\@restonecolfalse
\fi
\chapter*{\contentsname
\@mkboth{
\MakeUppercase\contentsname}{\MakeUppercase\contentsname}}
\@starttoc{toc}
\if@restonecol\twocolumn\fi
\cleardoublepage
}\end{spacing}
}
\newcommand\dedicatory[1]{
\btypeout{Dedicatory}
\thispagestyle{plain}
\null\vfil
\vskip 60\p@
\begin{center}{\Large \sl #1}\end{center}
\vfil\null
\cleardoublepage
}
\renewcommand\backmatter{
\if@openright
\cleardoublepage
\else
\clearpage
\fi
\addtotoc{\bibname}
\btypeout{\bibname}
\@mainmatterfalse}
\endinput
%%
%% End of file `Thesis.cls'.
Binary file not shown.
-140
View File
@@ -1,140 +0,0 @@
%% ----------------------------------------------------------------
%% Thesis.tex -- MAIN FILE (the one that you compile with LaTeX)
%% ----------------------------------------------------------------
% Set up the document
\documentclass[a4paper, 12pt, oneside]{Thesis} % Use the "Thesis" style, based on the ECS Thesis style by Steve Gunn
%\graphicspath{Figures/} % Location of the graphics files (set up for graphics to be in PDF format)
% Include any extra LaTeX packages required
%\usepackage[square, numbers, comma, sort&compress]{natbib} % Use the "Natbib" style for the references in the Bibliography
%\usepackage{verbatim} % Needed for the "comment" environment to make LaTeX comments
%\usepackage{vector} % Allows "\bvec{}" and "\buvec{}" for "blackboard" style bold vectors in maths
\usepackage{titlesec}
\usepackage[ngerman]{babel}
\hypersetup{urlcolor=black, colorlinks=true}
\titleformat{\chapter}[display]
{\normalfont\bfseries}{}{0pt}{\Huge}
%% ----------------------------------------------------------------
\begin{document}
% Set up the Title Page
\title {Entwicklung einer internen Social Media Plattform mit personalisierbarem Dashboard für
Studierende}
\authors {\texorpdfstring
{{Esther Kleinhenz}}
{Esther Kleinhenz}
}
\addresses {\groupname\\\deptname\\\univname} % Do not change this here, instead these must be set in the "Thesis.cls" file, please look through it instead
\date {\today}
\subject {}
\keywords {}
\maketitle
%% ----------------------------------------------------------------
\setstretch{1.3} % It is better to have smaller font and larger line spacing than the other way round
% Define the page headers using the FancyHdr package and set up for one-sided printing
\fancyhead{} % Clears all page headers and footers
\rhead{\thepage} % Sets the right side header to show the page number
\lhead{} % Clears the left side page header
%% ----------------------------------------------------------------
% Declaration Page required for the Thesis, your institution may give you a different text to place here
\Declaration{
\pagenumbering{gobble}
%\addtocontents{toc}{\vspace{1em}} % Add a gap in the Contents, for aesthetics
I, AUTHOR NAME, declare that this thesis titled, `THESIS TITLE' and the work presented in it are my own. I confirm that:
\begin{itemize}
\item[\tiny{$\blacksquare$}] This work was done wholly or mainly while in candidature for a research degree at this University.
\item[\tiny{$\blacksquare$}] Where any part of this thesis has previously been submitted for a degree or any other qualification at this University or any other institution, this has been clearly stated.
\item[\tiny{$\blacksquare$}] Where I have consulted the published work of others, this is always clearly attributed.
\item[\tiny{$\blacksquare$}] Where I have quoted from the work of others, the source is always given. With the exception of such quotations, this thesis is entirely my own work.
\item[\tiny{$\blacksquare$}] I have acknowledged all main sources of help.
\item[\tiny{$\blacksquare$}] Where the thesis is based on work done by myself jointly with others, I have made clear exactly what was done by others and what I have contributed myself.
\\
\end{itemize}
Signed:\\
\rule[1em]{25em}{0.5pt} % This prints a line for the signature
Date:\\
\rule[1em]{25em}{0.5pt} % This prints a line to write the date
}
\clearpage % Declaration ended, now start a new page
% The Abstract Page
\addtotoc{Abstrakt} % Add the "Abstract" page entry to the Contents
\abstract{
%\addtocontents{toc} %deletes page numbers on the first three pages, also in the table of content
% Add a gap in the Contents, for aesthetics
Kurzer Ueberblick über die Bachelor-Arbeit\ldots
}
\clearpage % Abstract ended, start a new page
%% ----------------------------------------------------------------
\pagestyle{fancy} %The page style headers have been "empty" all this time, now use the "fancy" headers as defined before to bring them back
%% ----------------------------------------------------------------
\lhead{\emph{Kapitel}}
%\tableofcontents % Write out the Table of Contents
%% ----------------------------------------------------------------
\mainmatter % Begin normal, numeric (1,2,3...) page numbering
%\pagestyle{fancy} % Return the page headers back to the "fancy" style
% Include the chapters of the thesis, as separate files
% Just uncomment the lines as you write the chapters
\input{Chapters/Chapter1} % Einleitung
\input{Chapters/Chapter2} % Frameworks
\input{Chapters/Chapter3} % Prototyp
\input{Chapters/Chapter4} % Test oder Beweis
\input{Chapters/Chapter5} % Zusammenfassung und Ausblick
%% ----------------------------------------------------------------
% Now begin the Appendices, including them as separate files
\addtocontents{toc}{\vspace{2em}} % Add a gap in the Contents, for aesthetics
\appendix % Cue to tell LaTeX that the following 'chapters' are Appendices
\input{Appendices/AppendixA} % Appendix Title
%\input{Appendices/AppendixB} % Appendix Title
%\input{Appendices/AppendixC} % Appendix Title
\addtocontents{toc}{\vspace{2em}} % Add a gap in the Contents, for aesthetics
\backmatter
%% ----------------------------------------------------------------
\renewcommand\refname{Literaturverzeichnis}
\label{Literaturverzeichnis}
\lhead{\emph{Literaturverzeichnis}} % Change the left side page header to "Bibliography"
\bibliographystyle{unsrtnat} % Use the "unsrtnat" BibTeX style for formatting the Bibliography
\bibliography{Bibliography} % The references (bibliography) information are stored in the file named "Bibliography.bib"
\end{document} % The End
%% ----------------------------------------------------------------
Binary file not shown.
-1
View File
@@ -1 +0,0 @@
%%%% This is file `lstpatch.sty', generated manually.%%%% (w)(c) 2004 Carsten Heinz%%%% This file may be distributed under the terms of the LaTeX Project Public%% License from CTAN archives in directory macros/latex/base/lppl.txt.%% Either version 1.0 or, at your option, any later version.%%%% Send comments and ideas on the package, error reports and additional%% programming languages to <cheinz@gmx.de>.%%%% This patch file will remove the following bugs from the listings package.%% Each item contains the bug finder with date of report and first bug fix%% version, a short description of the problem, and the reason for the bug%% in parenthesis.%%%% 1) Frank Atanassow, 2004/10/07, 1.3b%%%% space after mathescape is not preserved%% (\lst@newlines>0)%%%% 2) Benjamin Lings, 2004/10/15, 1.3b (2004/10/17)%%%% \usepackage{xy,listings} yields:%% "Forbidden control sequence found while scanning use of \lst@lExtend"%% (xy-pic correctly resets catcode of ^^L (to active), which is \outer)%%%%%% The following features are added to the base package.%%%% 1.3a (2004/09/07)%%%% a) H I G H L Y E X P E R I M E N T A L%%%% Use the options%% rangeprefix=<prefix for begin and end of range>%% rangesuffix=<suffix for begin and end of range>%%%% rangebeginprefix=<prefix for begin of range>%% rangebeginsuffix=<suffix for begin of range>%%%% rangeendprefix=<prefix for end of range>%% rangeendsuffix=<suffix for end of range>%%%% includerangemarker=true|false%% together with%% firstline=<begin marker>%% lastline=<end marker>%% or%% linerange={<begin marker 1>-<end marker 1>,%% <begin marker 2>-<end marker 2>, ...}%% The according markers in the source code are%% <prefix><marker><suffix>%% for begin respectively end of range. Moreover, one can use%% includerangemarker=true|false%% to show or hide the range markers in the output.%%%% 1.3b (2004/10/17)%%%% b) multicols=<number> (requires loaded multicol package)%%%%\lst@CheckVersion{1.3}{\typeout{^^J% ***^^J% *** This is a patch for listings 1.3, but you're using^^J% *** version \lst@version.^^J% ***^^J *** Patch file not loaded.^^J% ***^^J}% \endinput}\def\fileversion{1.3b}\def\filedate{2004/10/17}\ProvidesFile{lstpatch.sty}[\filedate\space\fileversion\space (Carsten Heinz)]%% 0) Insert % after #1.\def\@@xbitor #1{\@tempcntb \count#1% \ifnum \@tempcnta =\z@ \else \divide\@tempcntb\@tempcnta \ifodd\@tempcntb \@testtrue\fi \fi}%% 1) Reset \lst@newlines at end of escape.\def\lstpatch@escape{%\gdef\lst@Escape##1##2##3##4{% \lst@CArgX ##1\relax\lst@CDefX {}% {\lst@ifdropinput\else \lst@TrackNewLines\lst@OutputLostSpace \lst@XPrintToken \lst@InterruptModes \lst@EnterMode{\lst@TeXmode}{\lst@modetrue}% \ifx\^^M##2% \lst@CArg ##2\relax\lst@ActiveCDefX {}% {\lst@escapeend ##4\lst@LeaveAllModes\lst@ReenterModes}% {\lst@MProcessListing}% \else \lst@CArg ##2\relax\lst@ActiveCDefX {}% {\lst@escapeend ##4\lst@LeaveAllModes\lst@ReenterModes \lst@newlines\z@ \lst@whitespacefalse}% {}% \fi ##3\lst@escapebegin \fi}% {}}%}%% 2) Deactivate \outer definition of ^^L temporarily (inside and outside% of \lst@ScanChars) and restore \catcode at end of package.\begingroup \catcode12=\active\let^^L\@empty\gdef\lst@ScanChars{% \let\lsts@ssL^^L% \def^^L{\par}% \lst@GetChars\lst@RestoreOrigCatcodes\@ne {128}% \let^^L\lsts@ssL \lst@GetChars\lst@RestoreOrigExtendedCatcodes{128}{256}}\endgroup\lst@lAddTo\lst@RestoreCatcodes{\catcode12\active}%% a) Let's start with the options:\lst@Key{rangeprefix}\relax{\def\lst@rangebeginprefix{#1}% \def\lst@rangeendprefix{#1}}\lst@Key{rangesuffix}\relax{\def\lst@rangebeginsuffix{#1}% \def\lst@rangeendsuffix{#1}}\lst@Key{rangebeginprefix}{}{\def\lst@rangebeginprefix{#1}}\lst@Key{rangebeginsuffix}{}{\def\lst@rangebeginsuffix{#1}}\lst@Key{rangeendprefix}{}{\def\lst@rangeendprefix{#1}}\lst@Key{rangeendsuffix}{}{\def\lst@rangeendsuffix{#1}}\lst@Key{includerangemarker}{true}[t]{\lstKV@SetIf{#1}\lst@ifincluderangemarker}%% The key is a redefinition of \lst@GLI@ checking for numbers.\def\lst@GLI@#1-#2-#3\@nil{% \lst@IfNumber{#1}% {\ifx\@empty#1\@empty \let\lst@firstline\@ne \else \def\lst@firstline{#1\relax}% \fi \ifx\@empty#3\@empty \def\lst@lastline{9999999\relax}% \else \ifx\@empty#2\@empty \let\lst@lastline\lst@firstline \else \def\lst@lastline{#2\relax}% \fi \fi}%%% If we've found a general marker, we set firstline and lastline to 9999999.% This prevents (almost) anything to be printed for now. {\def\lst@firsLine truncated
+11
View File
@@ -0,0 +1,11 @@
version: '3'
services:
web:
build: .
command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py runserver 0.0.0.0:8000"
container_name: esther_kleinhenz_ba
volumes:
- .:/esther_kleinhenz_ba
ports:
- "8000:8000"
+18 -402
View File
@@ -1,402 +1,18 @@
[16/Oct/2018 19:58:49] INFO [mysite:150] test
[16/Oct/2018 20:00:13] INFO [mysite:150] test
[16/Oct/2018 20:00:44] INFO [mysite:150] test
[18/Oct/2018 16:49:10] INFO [mysite:150] test
[18/Oct/2018 16:50:20] INFO [mysite:149] test
[18/Oct/2018 16:53:59] INFO [mysite:149] test
[18/Oct/2018 17:02:15] INFO [mysite:149] Here ist the log
[18/Oct/2018 17:03:03] INFO [mysite:149] Here ist the log
[18/Oct/2018 17:04:21] INFO [mysite:150] Here ist the log
[18/Oct/2018 17:08:44] INFO [mysite:150] Here ist the log
[18/Oct/2018 17:22:00] INFO [mysite:150] Here ist the log
[18/Oct/2018 17:29:57] INFO [mysite:150] Here ist the log
[18/Oct/2018 17:33:51] INFO [mysite:150] Here ist the log
[18/Oct/2018 17:37:15] INFO [mysite:147] hei
[18/Oct/2018 17:38:10] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 17:40:53] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 17:41:34] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 17:41:45] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 17:42:04] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 17:47:59] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 17:49:27] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 17:49:43] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 17:50:18] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:04:38] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:07:12] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:08:17] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:09:29] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:10:27] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:10:59] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:13:11] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:14:22] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:14:45] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:17:07] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:23:37] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:42:53] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:43:28] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:46:58] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 19:12:55] INFO [mysite:147] CustomUser object (25)
[19/Oct/2018 09:18:42] INFO [mysite:147] CustomUser object (25)
[19/Oct/2018 09:19:10] INFO [mysite:148] <QuerySet []>
[19/Oct/2018 10:24:35] INFO [mysite:148] <QuerySet []>
[19/Oct/2018 16:52:08] INFO [mysite:148] <QuerySet []>
[19/Oct/2018 17:33:50] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 17:38:33] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 17:39:08] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 17:41:43] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 17:42:00] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 17:44:10] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 17:47:28] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 17:48:28] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 17:56:41] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 18:06:57] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 18:07:17] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 18:07:31] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 18:12:56] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 18:15:29] INFO [mysite:149] CustomUser object (25)
[20/Oct/2018 17:20:58] INFO [mysite:149] CustomUser object (25)
[20/Oct/2018 17:54:57] INFO [mysite:149] CustomUser object (25)
[20/Oct/2018 18:03:09] INFO [mysite:149] CustomUser object (25)
[20/Oct/2018 18:18:52] INFO [mysite:149] CustomUser object (25)
[20/Oct/2018 19:14:57] INFO [mysite:183] None
[20/Oct/2018 19:15:00] INFO [mysite:183] test
[20/Oct/2018 19:15:45] INFO [mysite:183] test
[20/Oct/2018 19:17:52] INFO [mysite:183] test
[20/Oct/2018 19:18:31] INFO [mysite:183] test
[20/Oct/2018 19:19:01] INFO [mysite:183] test
[20/Oct/2018 19:20:08] INFO [mysite:184] test
[20/Oct/2018 19:24:45] INFO [mysite:184] None
[20/Oct/2018 19:26:30] INFO [mysite:184] None
[20/Oct/2018 19:29:44] INFO [mysite:184] test
[20/Oct/2018 19:32:09] INFO [mysite:184] test
[20/Oct/2018 19:33:14] INFO [mysite:184] 5
[20/Oct/2018 22:26:02] INFO [mysite:184] hi
[20/Oct/2018 22:26:09] INFO [mysite:184] 2
[20/Oct/2018 22:26:39] INFO [mysite:184] 2
[20/Oct/2018 22:35:49] INFO [mysite:183] 2
[20/Oct/2018 22:35:55] INFO [mysite:183] 3
[20/Oct/2018 22:51:06] INFO [mysite:183] hi
[20/Oct/2018 22:53:24] INFO [mysite:183] hi
[20/Oct/2018 22:54:12] INFO [mysite:183] hi
[20/Oct/2018 22:57:38] INFO [mysite:181] <QuerySet [<Post: first post>, <Post: second bla>, <Post: Third one>]>
[20/Oct/2018 22:57:39] INFO [mysite:184] hi
[20/Oct/2018 22:59:11] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 22:59:11] INFO [mysite:184] hi
[20/Oct/2018 23:01:53] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:01:53] INFO [mysite:184] hi
[20/Oct/2018 23:02:06] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:02:06] INFO [mysite:184] 5
[20/Oct/2018 23:02:22] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:02:22] INFO [mysite:184] 5
[20/Oct/2018 23:02:45] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:02:45] INFO [mysite:184] 5
[20/Oct/2018 23:03:07] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:03:07] INFO [mysite:184] 5
[20/Oct/2018 23:03:46] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:03:46] INFO [mysite:184] 5
[20/Oct/2018 23:04:35] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:04:35] INFO [mysite:184] 5
[20/Oct/2018 23:06:49] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:06:49] INFO [mysite:184] hi
[20/Oct/2018 23:15:41] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:15:41] INFO [mysite:184] hi
[20/Oct/2018 23:17:19] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:17:19] INFO [mysite:184] hi
[20/Oct/2018 23:17:38] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:17:38] INFO [mysite:184] hi
[20/Oct/2018 23:19:11] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:19:11] INFO [mysite:184] hi
[20/Oct/2018 23:24:22] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:24:23] INFO [mysite:184] hi
[20/Oct/2018 23:24:42] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:24:42] INFO [mysite:184] hi
[20/Oct/2018 23:24:49] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:24:49] INFO [mysite:184] hi
[20/Oct/2018 23:24:54] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:24:54] INFO [mysite:184] test
[20/Oct/2018 23:25:01] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:25:01] INFO [mysite:184] third
[20/Oct/2018 23:28:54] INFO [mysite:182] None
[20/Oct/2018 23:29:00] INFO [mysite:182] hi
[20/Oct/2018 23:29:42] INFO [mysite:182] hi
[20/Oct/2018 23:30:53] INFO [mysite:182] hi
[20/Oct/2018 23:34:29] INFO [mysite:184] hi
[20/Oct/2018 23:34:34] INFO [mysite:54] <QuerySet [<Post: second bla>]>
[20/Oct/2018 23:38:12] INFO [mysite:54] <QuerySet [<Post: second bla>]>
[20/Oct/2018 23:38:18] INFO [mysite:184] None
[20/Oct/2018 23:38:25] INFO [mysite:184] hi
[20/Oct/2018 23:40:03] INFO [mysite:184] hi
[20/Oct/2018 23:40:10] INFO [mysite:184] first
[20/Oct/2018 23:41:01] INFO [mysite:184] first
[20/Oct/2018 23:41:12] INFO [mysite:184] h
[20/Oct/2018 23:41:28] INFO [mysite:184] h
[20/Oct/2018 23:41:32] INFO [mysite:184] h
[20/Oct/2018 23:41:38] INFO [mysite:184] h
[20/Oct/2018 23:41:40] INFO [mysite:184] hi
[20/Oct/2018 23:41:50] INFO [mysite:184] hi
[20/Oct/2018 23:41:56] INFO [mysite:184] taggit
[21/Oct/2018 10:35:50] INFO [mysite:184] taggit
[21/Oct/2018 10:35:55] INFO [mysite:184]
[21/Oct/2018 10:38:17] INFO [mysite:184] None
[21/Oct/2018 12:59:59] INFO [mysite:184] None
[22/Oct/2018 14:31:54] INFO [mysite:184] None
[22/Oct/2018 14:32:03] INFO [mysite:150] CustomUser object (25)
[22/Oct/2018 14:40:08] INFO [mysite:150] CustomUser object (25)
[22/Oct/2018 14:43:18] INFO [mysite:150] CustomUser object (25)
[22/Oct/2018 14:43:31] INFO [mysite:150] CustomUser object (25)
[22/Oct/2018 14:50:32] INFO [mysite:150] esthi
[22/Oct/2018 14:50:32] INFO [mysite:152] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 14:51:10] INFO [mysite:150] stefan
[22/Oct/2018 14:51:10] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 14:56:36] INFO [mysite:150] stefan
[22/Oct/2018 14:56:36] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 14:56:56] INFO [mysite:150] stefan
[22/Oct/2018 14:56:56] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 14:57:15] INFO [mysite:150] stefan
[22/Oct/2018 14:57:15] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 14:57:39] INFO [mysite:150] stefan
[22/Oct/2018 14:57:39] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 14:58:53] INFO [mysite:150] stefan
[22/Oct/2018 14:58:53] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 14:59:01] INFO [mysite:150] stefan
[22/Oct/2018 14:59:01] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 14:59:55] INFO [mysite:150] stefan
[22/Oct/2018 14:59:55] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 15:02:16] INFO [mysite:150] stefan
[22/Oct/2018 15:02:16] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 15:03:09] INFO [mysite:150] stefan
[22/Oct/2018 15:03:09] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 15:03:41] INFO [mysite:150] stefan
[22/Oct/2018 15:03:41] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 15:05:17] INFO [mysite:184] None
[22/Oct/2018 15:05:21] INFO [mysite:184] hi
[22/Oct/2018 15:07:51] INFO [mysite:185] None
[22/Oct/2018 15:07:53] INFO [mysite:150] stefan
[22/Oct/2018 15:07:53] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 15:08:37] INFO [mysite:150] stefan
[22/Oct/2018 15:08:37] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 15:09:08] INFO [mysite:151] stefan
[22/Oct/2018 15:09:08] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 15:09:58] INFO [mysite:151] stefan
[22/Oct/2018 15:09:58] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 15:11:00] INFO [mysite:151] stefan
[22/Oct/2018 15:11:00] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 15:11:41] INFO [mysite:151] stefan
[22/Oct/2018 15:11:41] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 15:12:14] INFO [mysite:151] stefan
[22/Oct/2018 15:12:14] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 15:14:15] INFO [mysite:151] stefan
[22/Oct/2018 15:14:15] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 17:37:38] INFO [mysite:154] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 17:38:19] INFO [mysite:154] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:39:44] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:39:44] INFO [mysite:155] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:41:03] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:41:19] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:41:20] INFO [mysite:155] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:45:07] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:45:07] INFO [mysite:155] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:45:32] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:45:32] INFO [mysite:155] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:45:47] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:45:47] INFO [mysite:155] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:45:47] INFO [mysite:160] ['bamberg']
[22/Oct/2018 17:45:47] INFO [mysite:160] ['bamberg', 'test']
[22/Oct/2018 17:49:21] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:49:21] INFO [mysite:155] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:49:21] INFO [mysite:159] ['bamberg']
[22/Oct/2018 17:49:21] INFO [mysite:159] ['bamberg', 'test']
[22/Oct/2018 17:51:20] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:51:20] INFO [mysite:155] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:51:20] INFO [mysite:159] ['bamberg']
[22/Oct/2018 17:51:20] INFO [mysite:159] ['bamberg', 'test']
[22/Oct/2018 17:51:27] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:51:27] INFO [mysite:155] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:51:28] INFO [mysite:159] ['bamberg']
[22/Oct/2018 17:51:28] INFO [mysite:159] ['bamberg', 'test']
[22/Oct/2018 17:53:13] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:53:55] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:53:55] INFO [mysite:154] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:53:55] INFO [mysite:158] ['bamberg']
[22/Oct/2018 17:53:55] INFO [mysite:158] ['bamberg', 'test']
[22/Oct/2018 17:54:44] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:54:44] INFO [mysite:154] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:55:02] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:55:02] INFO [mysite:154] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:55:02] INFO [mysite:159] ['bamberg']
[22/Oct/2018 17:55:02] INFO [mysite:159] ['bamberg', 'test']
[22/Oct/2018 17:55:14] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:55:14] INFO [mysite:154] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:55:14] INFO [mysite:159] <QuerySet []>
[22/Oct/2018 17:55:14] INFO [mysite:159] <QuerySet []>
[22/Oct/2018 17:56:12] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:56:12] INFO [mysite:154] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:56:12] INFO [mysite:159] bamberg
[22/Oct/2018 17:56:12] INFO [mysite:159] test
[22/Oct/2018 17:56:34] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:56:34] INFO [mysite:154] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:56:34] INFO [mysite:159] bamberg
[22/Oct/2018 17:56:34] INFO [mysite:159] test
[22/Oct/2018 17:57:48] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:57:48] INFO [mysite:154] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:57:49] INFO [mysite:159] <QuerySet []>
[22/Oct/2018 17:57:49] INFO [mysite:159] <QuerySet []>
[22/Oct/2018 17:59:46] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:59:46] INFO [mysite:154] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:59:46] INFO [mysite:159] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:59:46] INFO [mysite:159] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 18:00:06] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 18:00:06] INFO [mysite:154] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:00:06] INFO [mysite:159] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 18:00:06] INFO [mysite:159] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 18:00:15] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 18:00:15] INFO [mysite:154] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:00:15] INFO [mysite:159] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 18:00:15] INFO [mysite:159] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 18:01:25] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:01:25] INFO [mysite:158] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 18:01:25] INFO [mysite:158] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 18:01:45] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:02:47] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:03:12] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:03:12] INFO [mysite:158] <QuerySet []>
[22/Oct/2018 18:03:12] INFO [mysite:158] <QuerySet []>
[22/Oct/2018 18:04:45] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:05:24] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:05:24] INFO [mysite:157] bamberg
[22/Oct/2018 18:05:24] INFO [mysite:159] <QuerySet []>
[22/Oct/2018 18:05:24] INFO [mysite:157] test
[22/Oct/2018 18:05:24] INFO [mysite:159] <QuerySet []>
[22/Oct/2018 18:13:35] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:13:35] INFO [mysite:157] bamberg
[22/Oct/2018 18:14:16] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:14:16] INFO [mysite:157] bamberg
[22/Oct/2018 18:19:16] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:19:16] INFO [mysite:157] bamberg
[22/Oct/2018 18:38:14] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:38:14] INFO [mysite:157] bamberg
[22/Oct/2018 18:41:50] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:41:50] INFO [mysite:157] bamberg
[22/Oct/2018 18:41:50] INFO [mysite:159] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 18:41:50] INFO [mysite:157] test
[22/Oct/2018 18:41:50] INFO [mysite:159] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 18:45:55] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:45:55] INFO [mysite:157] bamberg
[22/Oct/2018 18:46:39] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:46:39] INFO [mysite:157] bamberg
[22/Oct/2018 18:46:39] INFO [mysite:159] <QuerySet []>
[22/Oct/2018 18:46:39] INFO [mysite:157] test
[22/Oct/2018 18:46:39] INFO [mysite:159] <QuerySet [<Post: first post>, <Post: second bla>, <Post: Third one>]>
[22/Oct/2018 18:47:12] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 18:47:12] INFO [mysite:157] stefan
[22/Oct/2018 18:47:12] INFO [mysite:159] <QuerySet []>
[22/Oct/2018 18:48:22] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 18:48:22] INFO [mysite:157] stefan
[22/Oct/2018 18:48:22] INFO [mysite:159] <QuerySet [<Post: Crazy>]>
[22/Oct/2018 18:50:37] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 18:50:38] INFO [mysite:157] stefan
[22/Oct/2018 18:52:01] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 18:52:01] INFO [mysite:157] stefan
[22/Oct/2018 18:52:36] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 18:52:36] INFO [mysite:157] stefan
[22/Oct/2018 18:53:07] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 18:53:07] INFO [mysite:157] stefan
[22/Oct/2018 18:53:20] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:53:20] INFO [mysite:157] bamberg
[22/Oct/2018 18:53:20] INFO [mysite:157] test
[22/Oct/2018 18:54:05] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:54:05] INFO [mysite:157] bamberg
[22/Oct/2018 18:54:20] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:54:21] INFO [mysite:157] bamberg
[22/Oct/2018 18:54:21] INFO [mysite:157] test
[22/Oct/2018 18:54:46] INFO [mysite:152] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:54:46] INFO [mysite:156] bamberg
[22/Oct/2018 18:54:46] INFO [mysite:156] test
[22/Oct/2018 18:55:43] INFO [mysite:152] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:55:43] INFO [mysite:156] bamberg
[22/Oct/2018 18:55:43] INFO [mysite:156] test
[24/Oct/2018 15:10:56] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[24/Oct/2018 15:10:56] INFO [mysite:156] stefan
[24/Oct/2018 15:11:37] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[24/Oct/2018 15:11:37] INFO [mysite:156] stefan
[24/Oct/2018 15:11:37] INFO [mysite:158] <QuerySet []>
[24/Oct/2018 15:13:48] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[24/Oct/2018 15:13:48] INFO [mysite:156] stefan
[24/Oct/2018 15:13:48] INFO [mysite:158] <QuerySet []>
[24/Oct/2018 15:15:46] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[24/Oct/2018 15:15:46] INFO [mysite:157] stefan
[24/Oct/2018 15:15:55] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[24/Oct/2018 15:15:55] INFO [mysite:157] stefan
[24/Oct/2018 15:15:55] INFO [mysite:159] <QuerySet []>
[24/Oct/2018 15:17:17] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[24/Oct/2018 15:17:17] INFO [mysite:156] stefan
[24/Oct/2018 15:17:17] INFO [mysite:158] <QuerySet []>
[24/Oct/2018 15:18:27] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[24/Oct/2018 15:18:27] INFO [mysite:156] stefan
[24/Oct/2018 15:18:27] INFO [mysite:158] <QuerySet []>
[24/Oct/2018 15:21:10] INFO [mysite:150] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[24/Oct/2018 15:21:10] INFO [mysite:154] <QuerySet [<Tag: stefan>]>
[24/Oct/2018 15:21:10] INFO [mysite:158] stefan
[24/Oct/2018 15:21:10] INFO [mysite:160] <QuerySet []>
[24/Oct/2018 15:22:12] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[24/Oct/2018 15:22:12] INFO [mysite:156] ['stefan']
[24/Oct/2018 15:22:12] INFO [mysite:158] <QuerySet []>
[24/Oct/2018 15:22:29] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[24/Oct/2018 15:22:29] INFO [mysite:156] ['stefan']
[24/Oct/2018 15:22:57] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[24/Oct/2018 15:22:57] INFO [mysite:155] <QuerySet []>
[24/Oct/2018 15:23:36] INFO [mysite:152] <QuerySet [<Tag: stefan>, <Tag: test>]>
[24/Oct/2018 15:23:36] INFO [mysite:155] <QuerySet []>
[24/Oct/2018 15:23:36] INFO [mysite:155] <QuerySet [<Post: Third one>, <Post: first post>, <Post: second bla>]>
[24/Oct/2018 15:24:29] INFO [mysite:152] <QuerySet [<Tag: bamberg>, <Tag: test>, <Tag: wieder>]>
[24/Oct/2018 15:24:29] INFO [mysite:155] <QuerySet []>
[24/Oct/2018 15:24:29] INFO [mysite:155] <QuerySet [<Post: Third one>, <Post: first post>, <Post: second bla>]>
[24/Oct/2018 15:24:29] INFO [mysite:155] <QuerySet []>
[24/Oct/2018 15:26:03] INFO [mysite:152] <QuerySet [<Tag: lukas>, <Tag: hi>]>
[24/Oct/2018 15:26:03] INFO [mysite:155] <QuerySet []>
[24/Oct/2018 15:26:03] INFO [mysite:155] <QuerySet [<Post: Third one>, <Post: second bla>]>
[24/Oct/2018 15:51:54] INFO [mysite:152] <QuerySet [<Tag: bamberg>, <Tag: test>, <Tag: wieder>]>
[24/Oct/2018 15:51:55] INFO [mysite:155] <QuerySet []>
[24/Oct/2018 15:51:55] INFO [mysite:155] <QuerySet [<Post: Third one>, <Post: first post>, <Post: second bla>]>
[24/Oct/2018 15:51:55] INFO [mysite:155] <QuerySet []>
[24/Oct/2018 15:53:01] INFO [mysite:152] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[24/Oct/2018 15:53:01] INFO [mysite:155] <QuerySet []>
[24/Oct/2018 15:53:01] INFO [mysite:155] <QuerySet [<Post: Third one>, <Post: first post>, <Post: second bla>]>
[24/Oct/2018 15:53:28] INFO [mysite:152] <QuerySet [<Tag: bamberg>, <Tag: test>, <Tag: this is a new one>]>
[24/Oct/2018 15:53:28] INFO [mysite:155] <QuerySet []>
[24/Oct/2018 15:53:28] INFO [mysite:155] <QuerySet [<Post: Third one>, <Post: first post>, <Post: second bla>]>
[24/Oct/2018 15:53:28] INFO [mysite:155] <QuerySet []>
[24/Oct/2018 18:41:24] INFO [mysite:186] None
[24/Oct/2018 18:41:31] INFO [mysite:186] bla
[24/Oct/2018 18:42:12] INFO [mysite:186] avoiddouble
[24/Oct/2018 18:42:20] INFO [mysite:186] hi
[24/Oct/2018 18:56:30] INFO [mysite:158] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[24/Oct/2018 18:56:30] INFO [mysite:161] <QuerySet []>
[24/Oct/2018 18:56:30] INFO [mysite:161] <QuerySet [<Post: Third one>, <Post: first post>, <Post: second bla>]>
[24/Oct/2018 18:56:45] INFO [mysite:190] None
[24/Oct/2018 18:56:49] INFO [mysite:190] bamberg
[24/Oct/2018 18:57:29] INFO [mysite:189] bamberg
[24/Oct/2018 19:00:30] INFO [mysite:189] None
[24/Oct/2018 19:00:30] INFO [mysite:191] <QuerySet []>
[24/Oct/2018 19:00:33] INFO [mysite:189] hi
[24/Oct/2018 19:00:33] INFO [mysite:191] <QuerySet [<Post: second bla>, <Post: Third one>]>
[24/Oct/2018 19:00:38] INFO [mysite:189] bamberg
[24/Oct/2018 19:00:38] INFO [mysite:191] <QuerySet []>
[24/Oct/2018 19:00:54] INFO [mysite:189] bamberg
[24/Oct/2018 19:00:54] INFO [mysite:191] <QuerySet []>
[24/Oct/2018 19:01:16] INFO [mysite:189] test
[24/Oct/2018 19:01:16] INFO [mysite:191] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[24/Oct/2018 19:01:20] INFO [mysite:189] third
[24/Oct/2018 19:01:20] INFO [mysite:191] <QuerySet [<Post: Third one>]>
[24/Oct/2018 19:01:35] INFO [mysite:189] None
[24/Oct/2018 19:01:35] INFO [mysite:191] <QuerySet []>
[24/Oct/2018 19:01:40] INFO [mysite:189] bamberg
[24/Oct/2018 19:01:40] INFO [mysite:191] <QuerySet []>
[24/Oct/2018 19:03:03] INFO [mysite:189] None
[24/Oct/2018 19:03:03] INFO [mysite:191] <QuerySet []>
[24/Oct/2018 19:03:08] INFO [mysite:189] bamberg
[24/Oct/2018 19:03:08] INFO [mysite:191] <QuerySet []>
[24/Oct/2018 19:03:28] INFO [mysite:189] bamberg
[24/Oct/2018 19:03:28] INFO [mysite:191] <QuerySet [<Post: Third one>]>
[24/Oct/2018 19:03:45] INFO [mysite:189] bamberg
[24/Oct/2018 19:03:45] INFO [mysite:191] <QuerySet [<Post: Third one>, <Post: here i go again>]>
[15/Nov/2018 11:29:37] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Bavaria>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:30:31] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: test>]>
[15/Nov/2018 11:30:31] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:30:31] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Bavaria>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:30:41] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: test>]>
[15/Nov/2018 11:30:41] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:30:41] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Bavaria>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:30:52] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: test>]>
[15/Nov/2018 11:30:52] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:30:52] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Bavaria>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:31:01] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: test>]>
[15/Nov/2018 11:31:01] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:31:01] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Bavaria>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:31:11] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: test>]>
[15/Nov/2018 11:31:11] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:31:11] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Bavaria>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:48:01] INFO [mysite:157] None
[15/Nov/2018 11:48:29] INFO [mysite:157] hi
+736
View File
@@ -0,0 +1,736 @@
[30/Oct/2018 13:40:36] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:40:36] INFO [mysite:138] hi
[30/Oct/2018 13:40:36] INFO [mysite:147] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 13:40:36] INFO [mysite:148] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 13:40:55] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:40:55] INFO [mysite:138] hi
[30/Oct/2018 13:40:55] INFO [mysite:147] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 13:40:55] INFO [mysite:148] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 13:41:03] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:41:03] INFO [mysite:138] hi
[30/Oct/2018 13:41:03] INFO [mysite:147] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 13:41:03] INFO [mysite:148] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 13:41:06] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:41:06] INFO [mysite:138] hi
[30/Oct/2018 13:41:06] INFO [mysite:147] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 13:41:06] INFO [mysite:148] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 15:36:42] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 15:36:45] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 15:36:45] INFO [mysite:138] hi
[30/Oct/2018 15:36:46] INFO [mysite:147] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 15:36:46] INFO [mysite:148] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 15:37:06] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 15:39:26] INFO [mysite:199] None
[30/Oct/2018 15:39:32] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:39:47] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:39:47] INFO [mysite:138] hi
[30/Oct/2018 15:39:47] INFO [mysite:147] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 15:39:47] INFO [mysite:148] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 15:40:32] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:40:36] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:40:36] INFO [mysite:138] hi
[30/Oct/2018 15:40:36] INFO [mysite:147] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 15:40:36] INFO [mysite:148] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 15:40:57] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:41:00] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:41:00] INFO [mysite:138] hi
[30/Oct/2018 15:41:00] INFO [mysite:147] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 15:41:00] INFO [mysite:148] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 15:41:27] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:41:28] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:41:30] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:41:30] INFO [mysite:138] hi
[30/Oct/2018 15:41:30] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 15:41:30] INFO [mysite:147] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 15:42:31] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:42:31] INFO [mysite:138] hi
[30/Oct/2018 15:42:31] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 15:42:31] INFO [mysite:147] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 15:42:34] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:42:34] INFO [mysite:138] hi
[30/Oct/2018 15:42:34] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 15:42:34] INFO [mysite:147] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 15:45:00] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:45:03] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:45:03] INFO [mysite:138] hi
[30/Oct/2018 15:45:34] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:45:37] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:45:37] INFO [mysite:138] hi
[30/Oct/2018 15:45:37] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 15:45:37] INFO [mysite:147] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 15:45:56] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:46:00] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:46:00] INFO [mysite:138] hi
[30/Oct/2018 15:46:00] INFO [mysite:146] <bound method BaseModelForm.clean of <NewTagForm bound=True, valid=True, fields=(m_tags)>>
[30/Oct/2018 15:46:00] INFO [mysite:147] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 15:46:28] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:46:31] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:46:31] INFO [mysite:138] hi
[30/Oct/2018 15:46:31] INFO [mysite:146] <QueryDict: {'csrfmiddlewaretoken': ['lGD79wzSnukIJUbQ0zC3CwkitKoFy7XPhEq6uLMlu7TqEOjMAAjsCoC5BG8qAwQa'], 'm_tags': ['hi']}>
[30/Oct/2018 15:46:31] INFO [mysite:147] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 15:47:27] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:47:30] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:47:30] INFO [mysite:138] hi
[30/Oct/2018 15:47:30] INFO [mysite:146] ['hi']
[30/Oct/2018 15:47:30] INFO [mysite:147] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 15:49:43] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:49:43] INFO [mysite:138] hi
[30/Oct/2018 15:50:08] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:50:12] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:50:12] INFO [mysite:138] hi
[30/Oct/2018 15:50:59] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:51:02] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:51:02] INFO [mysite:138] hi
[30/Oct/2018 15:51:40] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:51:43] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:51:43] INFO [mysite:144] ['hi']
[30/Oct/2018 15:52:31] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:52:31] INFO [mysite:144] 'hi'
[30/Oct/2018 15:53:10] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:53:10] INFO [mysite:144] 'hi'
[30/Oct/2018 15:53:50] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:53:50] INFO [mysite:144] 'hi'
[30/Oct/2018 15:54:30] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:54:32] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:54:33] INFO [mysite:144] 'hi'
[30/Oct/2018 15:54:33] INFO [mysite:148] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 15:54:55] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:54:55] INFO [mysite:144] 'hi'
[30/Oct/2018 15:54:55] INFO [mysite:148] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 15:54:57] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:54:58] INFO [mysite:144] 'hi'
[30/Oct/2018 15:54:58] INFO [mysite:148] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 15:56:02] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:56:04] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:56:51] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:56:54] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:56:56] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:57:04] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:59:17] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 15:59:30] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:01:18] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:02:15] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:02:54] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:05:29] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:05:29] INFO [mysite:145] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 16:05:29] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:05:33] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:05:33] INFO [mysite:145] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 16:05:33] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:05:59] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:06:04] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:06:04] INFO [mysite:145] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 16:06:04] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:10:45] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:10:48] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:10:48] INFO [mysite:145] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>, <Tag: neu>]>
[30/Oct/2018 16:10:48] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:16:10] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:16:13] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:16:13] INFO [mysite:145] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>, <Tag: neu>]>
[30/Oct/2018 16:16:53] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:16:57] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:16:57] INFO [mysite:145] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>, <Tag: neu>]>
[30/Oct/2018 16:16:57] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:17:19] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:17:19] INFO [mysite:145] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>, <Tag: neu>]>
[30/Oct/2018 16:17:20] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:17:58] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:17:58] INFO [mysite:145] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>, <Tag: neu>]>
[30/Oct/2018 16:17:58] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:21:21] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:21:57] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:21:57] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist']
[30/Oct/2018 16:21:57] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:22:43] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:22:47] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:22:47] INFO [mysite:140] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist']
[30/Oct/2018 16:22:47] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:23:14] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:23:14] INFO [mysite:137] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:23:18] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:23:18] INFO [mysite:137] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:23:18] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:23:18] INFO [mysite:137] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:27:39] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:27:39] INFO [mysite:137] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:27:43] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:27:43] INFO [mysite:137] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:27:43] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:27:43] INFO [mysite:137] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:28:55] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:28:55] INFO [mysite:137] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:28:57] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:28:57] INFO [mysite:137] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:28:57] INFO [mysite:146] worked out
[30/Oct/2018 16:28:58] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:28:58] INFO [mysite:137] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:29:16] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:29:16] INFO [mysite:137] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:29:19] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:29:19] INFO [mysite:137] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:29:19] INFO [mysite:146] worked out
[30/Oct/2018 16:29:37] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:29:37] INFO [mysite:137] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:29:40] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:29:40] INFO [mysite:137] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:32:08] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:32:08] INFO [mysite:137] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:32:11] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:32:11] INFO [mysite:137] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:34:03] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:34:03] INFO [mysite:143] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:34:05] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:34:05] INFO [mysite:143] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:36:53] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:36:53] INFO [mysite:143] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:36:58] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:36:58] INFO [mysite:143] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:39:53] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:39:53] INFO [mysite:143] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:39:53] INFO [mysite:148] worked out
[30/Oct/2018 16:39:53] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:39:55] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:39:55] INFO [mysite:143] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:39:55] INFO [mysite:148] worked out
[30/Oct/2018 16:39:55] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:40:09] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:40:12] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:40:12] INFO [mysite:143] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:40:12] INFO [mysite:148] worked out
[30/Oct/2018 16:40:12] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:40:35] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:40:38] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:40:38] INFO [mysite:139] form is valid
[30/Oct/2018 16:40:38] INFO [mysite:144] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:40:38] INFO [mysite:149] worked out
[30/Oct/2018 16:40:38] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:40:51] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:40:55] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:40:55] INFO [mysite:139] form is valid
[30/Oct/2018 16:40:55] INFO [mysite:144] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:40:55] INFO [mysite:149] worked out
[30/Oct/2018 16:40:56] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:41:13] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:41:16] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:41:16] INFO [mysite:139] form is valid
[30/Oct/2018 16:41:16] INFO [mysite:144] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:41:16] INFO [mysite:149] worked out
[30/Oct/2018 16:41:16] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:41:37] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:41:40] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:41:40] INFO [mysite:137] post method
[30/Oct/2018 16:41:40] INFO [mysite:140] form is valid
[30/Oct/2018 16:41:41] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:41:41] INFO [mysite:150] worked out
[30/Oct/2018 16:41:41] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:42:00] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:42:02] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:42:06] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:42:06] INFO [mysite:137] post method
[30/Oct/2018 16:42:06] INFO [mysite:140] form is valid
[30/Oct/2018 16:42:06] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:42:06] INFO [mysite:150] worked out
[30/Oct/2018 16:42:06] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:42:23] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:42:26] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:42:26] INFO [mysite:137] post method
[30/Oct/2018 16:42:26] INFO [mysite:140] form is valid
[30/Oct/2018 16:42:27] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:42:27] INFO [mysite:150] worked out
[30/Oct/2018 16:42:27] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:42:44] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:42:47] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:42:47] INFO [mysite:137] post method
[30/Oct/2018 16:42:47] INFO [mysite:140] form is valid
[30/Oct/2018 16:42:47] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:42:47] INFO [mysite:150] worked out
[30/Oct/2018 16:42:48] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:43:28] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:43:32] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:43:32] INFO [mysite:137] post method
[30/Oct/2018 16:43:32] INFO [mysite:140] form is valid
[30/Oct/2018 16:43:32] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:43:32] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:43:41] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:43:41] INFO [mysite:137] post method
[30/Oct/2018 16:43:41] INFO [mysite:140] form is valid
[30/Oct/2018 16:43:41] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:43:41] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:44:18] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:44:26] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:44:26] INFO [mysite:137] post method
[30/Oct/2018 16:44:26] INFO [mysite:140] form is valid
[30/Oct/2018 16:44:26] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:44:26] INFO [mysite:147] m_tags
[30/Oct/2018 16:44:45] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:44:45] INFO [mysite:137] post method
[30/Oct/2018 16:44:45] INFO [mysite:140] form is valid
[30/Oct/2018 16:44:45] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:44:45] INFO [mysite:147] ['testag']
[30/Oct/2018 16:44:47] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:44:47] INFO [mysite:137] post method
[30/Oct/2018 16:44:47] INFO [mysite:140] form is valid
[30/Oct/2018 16:44:47] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:44:47] INFO [mysite:147] ['testag']
[30/Oct/2018 16:45:17] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:45:17] INFO [mysite:137] post method
[30/Oct/2018 16:45:17] INFO [mysite:140] form is valid
[30/Oct/2018 16:45:17] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:45:17] INFO [mysite:147] ['testag']
[30/Oct/2018 16:45:22] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:45:22] INFO [mysite:137] post method
[30/Oct/2018 16:45:22] INFO [mysite:140] form is valid
[30/Oct/2018 16:45:22] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:45:22] INFO [mysite:147] ['test']
[30/Oct/2018 16:45:48] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:45:48] INFO [mysite:137] post method
[30/Oct/2018 16:45:48] INFO [mysite:140] form is valid
[30/Oct/2018 16:45:48] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:45:48] INFO [mysite:147] ['test']
[30/Oct/2018 16:45:53] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:45:53] INFO [mysite:137] post method
[30/Oct/2018 16:45:53] INFO [mysite:140] form is valid
[30/Oct/2018 16:45:53] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:45:53] INFO [mysite:147] ['hi']
[30/Oct/2018 16:47:04] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:47:04] INFO [mysite:137] post method
[30/Oct/2018 16:47:04] INFO [mysite:140] form is valid
[30/Oct/2018 16:47:04] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:47:04] INFO [mysite:147] ['hi']
[30/Oct/2018 16:47:07] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:47:07] INFO [mysite:137] post method
[30/Oct/2018 16:47:07] INFO [mysite:140] form is valid
[30/Oct/2018 16:47:07] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:47:07] INFO [mysite:147] ['hi']
[30/Oct/2018 16:48:06] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:48:06] INFO [mysite:137] post method
[30/Oct/2018 16:48:06] INFO [mysite:140] form is valid
[30/Oct/2018 16:48:06] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:48:06] INFO [mysite:147] ['hi']
[30/Oct/2018 16:48:09] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:48:09] INFO [mysite:137] post method
[30/Oct/2018 16:48:09] INFO [mysite:140] form is valid
[30/Oct/2018 16:48:09] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:48:09] INFO [mysite:147] ['hi']
[30/Oct/2018 16:48:46] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:49:21] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:49:24] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:49:24] INFO [mysite:137] post method
[30/Oct/2018 16:49:24] INFO [mysite:140] form is valid
[30/Oct/2018 16:49:24] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:49:24] INFO [mysite:148] ['test']
[30/Oct/2018 16:49:45] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:49:45] INFO [mysite:137] post method
[30/Oct/2018 16:49:45] INFO [mysite:140] form is valid
[30/Oct/2018 16:49:45] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:49:45] INFO [mysite:148] ['hi']
[30/Oct/2018 16:49:51] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:49:51] INFO [mysite:137] post method
[30/Oct/2018 16:49:51] INFO [mysite:140] form is valid
[30/Oct/2018 16:49:51] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:49:51] INFO [mysite:148] ['hi']
[30/Oct/2018 16:50:57] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:50:57] INFO [mysite:137] post method
[30/Oct/2018 16:50:57] INFO [mysite:140] form is valid
[30/Oct/2018 16:50:57] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:50:57] INFO [mysite:148] hi
[30/Oct/2018 16:51:01] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:51:01] INFO [mysite:137] post method
[30/Oct/2018 16:51:01] INFO [mysite:140] form is valid
[30/Oct/2018 16:51:01] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:51:01] INFO [mysite:148] hi
[30/Oct/2018 16:51:03] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:51:03] INFO [mysite:137] post method
[30/Oct/2018 16:51:03] INFO [mysite:140] form is valid
[30/Oct/2018 16:51:03] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:51:03] INFO [mysite:148] hi
[30/Oct/2018 16:51:20] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:51:20] INFO [mysite:137] post method
[30/Oct/2018 16:51:20] INFO [mysite:140] form is valid
[30/Oct/2018 16:51:20] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt']
[30/Oct/2018 16:51:20] INFO [mysite:148] hi
[30/Oct/2018 16:51:20] INFO [mysite:152] worked out
[30/Oct/2018 16:51:20] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:51:35] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:51:35] INFO [mysite:137] post method
[30/Oct/2018 16:51:35] INFO [mysite:140] form is valid
[30/Oct/2018 16:51:35] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt', 'h', 'i']
[30/Oct/2018 16:51:35] INFO [mysite:148] hi
[30/Oct/2018 16:51:35] INFO [mysite:152] worked out
[30/Oct/2018 16:51:35] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:52:18] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:52:25] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:52:25] INFO [mysite:137] post method
[30/Oct/2018 16:52:25] INFO [mysite:140] form is valid
[30/Oct/2018 16:52:25] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'neu', 'mist', 'fritt', 'h', 'i']
[30/Oct/2018 16:52:25] INFO [mysite:148] hi
[30/Oct/2018 16:52:25] INFO [mysite:152] worked out
[30/Oct/2018 16:53:40] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:53:40] INFO [mysite:137] post method
[30/Oct/2018 16:53:40] INFO [mysite:140] form is valid
[30/Oct/2018 16:53:41] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second']
[30/Oct/2018 16:53:41] INFO [mysite:148] hi
[30/Oct/2018 16:53:41] INFO [mysite:152] worked out
[30/Oct/2018 16:53:45] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:53:45] INFO [mysite:137] post method
[30/Oct/2018 16:53:45] INFO [mysite:140] form is valid
[30/Oct/2018 16:53:45] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'h', 'i']
[30/Oct/2018 16:53:45] INFO [mysite:148] hi
[30/Oct/2018 16:53:45] INFO [mysite:152] worked out
[30/Oct/2018 16:55:22] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:55:22] INFO [mysite:137] post method
[30/Oct/2018 16:55:22] INFO [mysite:140] form is valid
[30/Oct/2018 16:55:22] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'h', 'i']
[30/Oct/2018 16:55:22] INFO [mysite:148] hi
[30/Oct/2018 16:55:22] INFO [mysite:152] worked out
[30/Oct/2018 16:55:25] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:55:25] INFO [mysite:137] post method
[30/Oct/2018 16:55:25] INFO [mysite:140] form is valid
[30/Oct/2018 16:55:25] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'h', 'i']
[30/Oct/2018 16:55:25] INFO [mysite:148] hi
[30/Oct/2018 16:55:25] INFO [mysite:152] worked out
[30/Oct/2018 16:55:46] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:55:46] INFO [mysite:137] post method
[30/Oct/2018 16:55:46] INFO [mysite:140] form is valid
[30/Oct/2018 16:55:46] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second']
[30/Oct/2018 16:55:46] INFO [mysite:148] hi
[30/Oct/2018 16:55:46] INFO [mysite:152] worked out
[30/Oct/2018 16:55:48] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:55:48] INFO [mysite:137] post method
[30/Oct/2018 16:55:48] INFO [mysite:140] form is valid
[30/Oct/2018 16:55:48] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'h', 'i']
[30/Oct/2018 16:55:48] INFO [mysite:148] hi
[30/Oct/2018 16:55:48] INFO [mysite:152] worked out
[30/Oct/2018 16:57:24] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:57:24] INFO [mysite:137] post method
[30/Oct/2018 16:57:24] INFO [mysite:140] form is valid
[30/Oct/2018 16:57:24] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second', 'h', 'i']
[30/Oct/2018 16:57:24] INFO [mysite:148] hi
[30/Oct/2018 16:57:24] INFO [mysite:150] worked out
[30/Oct/2018 16:57:41] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:57:41] INFO [mysite:137] post method
[30/Oct/2018 16:57:41] INFO [mysite:140] form is valid
[30/Oct/2018 16:57:41] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second']
[30/Oct/2018 16:57:41] INFO [mysite:148] hi
[30/Oct/2018 16:57:41] INFO [mysite:150] worked out
[30/Oct/2018 16:57:43] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:57:43] INFO [mysite:137] post method
[30/Oct/2018 16:57:43] INFO [mysite:140] form is valid
[30/Oct/2018 16:57:43] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second']
[30/Oct/2018 16:57:43] INFO [mysite:148] hi
[30/Oct/2018 16:57:43] INFO [mysite:150] worked out
[30/Oct/2018 16:58:02] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:58:02] INFO [mysite:137] post method
[30/Oct/2018 16:58:02] INFO [mysite:140] form is valid
[30/Oct/2018 16:58:02] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second']
[30/Oct/2018 16:58:02] INFO [mysite:148] hi
[30/Oct/2018 16:58:02] INFO [mysite:150] worked out
[30/Oct/2018 16:58:07] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:58:07] INFO [mysite:137] post method
[30/Oct/2018 16:58:07] INFO [mysite:140] form is valid
[30/Oct/2018 16:58:07] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second']
[30/Oct/2018 16:58:07] INFO [mysite:148] bayern
[30/Oct/2018 16:58:07] INFO [mysite:150] worked out
[30/Oct/2018 16:59:49] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:59:49] INFO [mysite:137] post method
[30/Oct/2018 16:59:49] INFO [mysite:140] form is valid
[30/Oct/2018 16:59:49] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second']
[30/Oct/2018 16:59:49] INFO [mysite:148] bayern
[30/Oct/2018 16:59:49] INFO [mysite:150] worked out
[30/Oct/2018 16:59:49] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:59:54] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 16:59:54] INFO [mysite:137] post method
[30/Oct/2018 16:59:54] INFO [mysite:140] form is valid
[30/Oct/2018 16:59:54] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second']
[30/Oct/2018 16:59:54] INFO [mysite:148] bayern
[30/Oct/2018 16:59:54] INFO [mysite:150] worked out
[30/Oct/2018 16:59:54] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 17:00:33] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 17:00:36] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 17:00:36] INFO [mysite:137] post method
[30/Oct/2018 17:00:36] INFO [mysite:140] form is valid
[30/Oct/2018 17:00:36] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second']
[30/Oct/2018 17:00:36] INFO [mysite:148] hi
[30/Oct/2018 17:00:36] INFO [mysite:150] worked out
[30/Oct/2018 17:00:37] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 17:00:58] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 17:01:01] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 17:01:01] INFO [mysite:137] post method
[30/Oct/2018 17:01:01] INFO [mysite:140] form is valid
[30/Oct/2018 17:01:01] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second']
[30/Oct/2018 17:01:01] INFO [mysite:148] test
[30/Oct/2018 17:01:01] INFO [mysite:150] worked out
[30/Oct/2018 17:01:01] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 17:01:06] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 17:01:06] INFO [mysite:137] post method
[30/Oct/2018 17:01:06] INFO [mysite:140] form is valid
[30/Oct/2018 17:01:06] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second']
[30/Oct/2018 17:01:06] INFO [mysite:148] testag
[30/Oct/2018 17:01:30] INFO [mysite:135] CustomUser object (1)
[30/Oct/2018 17:01:30] INFO [mysite:137] post method
[30/Oct/2018 17:01:30] INFO [mysite:140] form is valid
[30/Oct/2018 17:01:30] INFO [mysite:145] ['hi', 'first', 'test', 'bayern', 'second']
[30/Oct/2018 17:01:30] INFO [mysite:148] testag
[31/Oct/2018 14:51:36] INFO [mysite:141] CustomUser object (2)
[31/Oct/2018 14:51:39] INFO [mysite:141] CustomUser object (2)
[31/Oct/2018 14:52:57] INFO [mysite:142] CustomUser object (2)
[31/Oct/2018 14:53:00] INFO [mysite:142] CustomUser object (2)
[31/Oct/2018 14:54:10] INFO [mysite:144] CustomUser object (2)
[31/Oct/2018 14:54:12] INFO [mysite:144] CustomUser object (2)
[31/Oct/2018 14:55:09] INFO [mysite:144] CustomUser object (2)
[31/Oct/2018 14:55:38] INFO [mysite:144] CustomUser object (2)
[31/Oct/2018 14:55:41] INFO [mysite:144] CustomUser object (2)
[31/Oct/2018 14:56:20] INFO [mysite:146] CustomUser object (2)
[31/Oct/2018 14:58:29] INFO [mysite:146] CustomUser object (2)
[31/Oct/2018 14:58:31] INFO [mysite:146] CustomUser object (2)
[31/Oct/2018 14:58:43] INFO [mysite:146] CustomUser object (2)
[31/Oct/2018 14:59:00] INFO [mysite:146] CustomUser object (2)
[31/Oct/2018 17:18:53] INFO [mysite:146] CustomUser object (2)
[31/Oct/2018 17:19:02] INFO [mysite:146] CustomUser object (2)
[31/Oct/2018 17:19:04] INFO [mysite:146] CustomUser object (2)
[31/Oct/2018 17:20:10] INFO [mysite:146] CustomUser object (2)
[31/Oct/2018 17:21:24] INFO [mysite:146] CustomUser object (2)
[31/Oct/2018 17:21:27] INFO [mysite:146] CustomUser object (2)
[31/Oct/2018 17:24:55] INFO [mysite:146] CustomUser object (2)
[31/Oct/2018 17:27:16] INFO [mysite:147] CustomUser object (2)
[31/Oct/2018 17:27:59] INFO [mysite:147] CustomUser object (2)
[31/Oct/2018 17:28:02] INFO [mysite:147] CustomUser object (2)
[31/Oct/2018 17:29:13] INFO [mysite:146] CustomUser object (2)
[31/Oct/2018 17:29:17] INFO [mysite:146] CustomUser object (2)
[31/Oct/2018 17:32:43] INFO [mysite:144] CustomUser object (2)
[31/Oct/2018 17:32:45] INFO [mysite:144] CustomUser object (2)
[31/Oct/2018 17:42:25] INFO [mysite:186] None
[31/Oct/2018 17:43:06] INFO [mysite:186] None
[31/Oct/2018 17:43:07] INFO [mysite:144] CustomUser object (3)
[31/Oct/2018 17:43:13] INFO [mysite:144] CustomUser object (3)
[31/Oct/2018 17:44:14] INFO [mysite:144] CustomUser object (3)
[31/Oct/2018 17:44:17] INFO [mysite:175] <QuerySet [<Tag: hi>]>
[31/Oct/2018 17:44:17] INFO [mysite:178] <QuerySet [<Post: Hi there>]>
[31/Oct/2018 17:45:09] INFO [mysite:175] <QuerySet [<Tag: hi>]>
[31/Oct/2018 17:45:09] INFO [mysite:178] <QuerySet [<Post: Hi there>]>
[31/Oct/2018 17:45:15] INFO [mysite:144] CustomUser object (3)
[31/Oct/2018 17:45:24] INFO [mysite:144] CustomUser object (3)
[31/Oct/2018 17:45:24] INFO [mysite:146] post method
[31/Oct/2018 17:45:24] INFO [mysite:153] ['hi', 'first', 'test', 'bayern', 'second']
[31/Oct/2018 17:46:00] INFO [mysite:144] CustomUser object (3)
[31/Oct/2018 17:46:04] INFO [mysite:144] CustomUser object (3)
[31/Oct/2018 17:46:04] INFO [mysite:146] post method
[31/Oct/2018 17:46:05] INFO [mysite:153] ['hi', 'first', 'test', 'bayern', 'second']
[31/Oct/2018 17:46:05] INFO [mysite:156] hi
[31/Oct/2018 17:46:05] INFO [mysite:158] worked out
[31/Oct/2018 17:46:05] INFO [mysite:144] CustomUser object (3)
[31/Oct/2018 17:50:10] INFO [mysite:144] CustomUser object (3)
[31/Oct/2018 17:50:13] INFO [mysite:144] CustomUser object (3)
[31/Oct/2018 17:50:13] INFO [mysite:146] post method
[31/Oct/2018 17:51:14] INFO [mysite:144] CustomUser object (3)
[31/Oct/2018 17:51:14] INFO [mysite:146] post method
[31/Oct/2018 17:51:24] INFO [mysite:144] CustomUser object (3)
[31/Oct/2018 17:51:24] INFO [mysite:146] post method
[31/Oct/2018 17:51:39] INFO [mysite:144] CustomUser object (3)
[31/Oct/2018 17:56:24] INFO [mysite:144] CustomUser object (3)
[31/Oct/2018 18:04:35] INFO [mysite:146] post method
[31/Oct/2018 18:04:35] INFO [mysite:153] ['hi', 'first', 'test', 'bayern', 'second']
[31/Oct/2018 18:04:35] INFO [mysite:157] worked out
[31/Oct/2018 18:06:17] INFO [mysite:146] post method
[31/Oct/2018 18:06:18] INFO [mysite:153] ['hi', 'first', 'test', 'bayern', 'second']
[31/Oct/2018 18:06:18] INFO [mysite:157] worked out
[31/Oct/2018 18:07:46] INFO [mysite:146] post method
[31/Oct/2018 18:07:47] INFO [mysite:153] ['hi', 'first', 'test', 'bayern', 'second']
[31/Oct/2018 18:07:47] INFO [mysite:157] worked out
[31/Oct/2018 18:09:17] INFO [mysite:146] post method
[31/Oct/2018 18:09:18] INFO [mysite:153] ['hi', 'first', 'test', 'bayern', 'second']
[31/Oct/2018 18:09:40] INFO [mysite:146] post method
[31/Oct/2018 18:09:40] INFO [mysite:153] ['hi', 'first', 'test', 'bayern', 'second']
[31/Oct/2018 18:09:47] INFO [mysite:146] post method
[31/Oct/2018 18:09:48] INFO [mysite:153] ['hi', 'first', 'test', 'bayern', 'second']
[31/Oct/2018 18:10:12] INFO [mysite:146] post method
[31/Oct/2018 18:10:12] INFO [mysite:153] ['hi', 'first', 'test', 'bayern', 'second']
[31/Oct/2018 18:10:12] INFO [mysite:157] worked out
[31/Oct/2018 18:22:34] INFO [mysite:144] post method
[31/Oct/2018 18:22:51] INFO [mysite:145] post method
[31/Oct/2018 18:22:51] INFO [mysite:148] form is valid
[31/Oct/2018 18:22:51] INFO [mysite:153] ['hi', 'first', 'test', 'bayern', 'second']
[31/Oct/2018 18:23:10] INFO [mysite:145] post method
[31/Oct/2018 18:23:10] INFO [mysite:148] form is valid
[31/Oct/2018 18:23:10] INFO [mysite:153] ['hi', 'first', 'test', 'bayern', 'second']
[31/Oct/2018 18:23:10] INFO [mysite:156] hi
[31/Oct/2018 18:23:10] INFO [mysite:158] worked out
[31/Oct/2018 18:23:19] INFO [mysite:145] post method
[31/Oct/2018 18:23:19] INFO [mysite:148] form is valid
[31/Oct/2018 18:23:19] INFO [mysite:153] ['hi', 'first', 'test', 'bayern', 'second']
[31/Oct/2018 18:23:19] INFO [mysite:156] hi
[31/Oct/2018 18:23:19] INFO [mysite:158] worked out
[31/Oct/2018 18:23:23] INFO [mysite:145] post method
[31/Oct/2018 18:23:23] INFO [mysite:148] form is valid
[31/Oct/2018 18:23:23] INFO [mysite:153] ['hi', 'first', 'test', 'bayern', 'second']
[31/Oct/2018 18:23:23] INFO [mysite:156] tehere
[04/Nov/2018 14:50:11] INFO [mysite:186] None
[09/Nov/2018 08:16:30] INFO [mysite:59] <QuerySet [<Post: Hi there>, <Post: Bavaria>, <Post: test again>]>
[09/Nov/2018 08:16:32] INFO [mysite:59] <QuerySet [<Post: Hi there>]>
[09/Nov/2018 08:16:34] INFO [mysite:59] <QuerySet [<Post: Hi there>, <Post: test again>]>
[09/Nov/2018 08:16:53] INFO [mysite:187] None
[09/Nov/2018 15:25:20] INFO [mysite:187] None
[10/Nov/2018 11:44:59] INFO [mysite:187] None
[10/Nov/2018 11:45:03] INFO [mysite:187] hi
[10/Nov/2018 16:40:45] INFO [mysite:187] asdf
[10/Nov/2018 16:40:53] INFO [mysite:187] hi
[10/Nov/2018 16:41:03] INFO [mysite:187] h
[10/Nov/2018 16:45:09] INFO [mysite:176] <QuerySet [<Tag: hi>]>
[10/Nov/2018 16:45:09] INFO [mysite:179] <QuerySet [<Post: test again>, <Post: Hi there>]>
[13/Nov/2018 10:34:44] INFO [mysite:102] welche form?
[13/Nov/2018 10:48:58] INFO [mysite:103] welche form?
[13/Nov/2018 11:00:40] INFO [mysite:103] welche form?
[13/Nov/2018 11:00:55] INFO [mysite:99] hier benutzen wir POST
[13/Nov/2018 11:01:23] INFO [mysite:103] welche form?
[13/Nov/2018 11:01:32] INFO [mysite:94] hier benutzen wir POST
[13/Nov/2018 18:47:37] INFO [mysite:187] None
[13/Nov/2018 18:48:34] INFO [mysite:187] None
[13/Nov/2018 18:49:21] INFO [mysite:187] None
[13/Nov/2018 18:53:28] INFO [mysite:187] hi
[13/Nov/2018 18:55:05] INFO [mysite:187] hi
[13/Nov/2018 18:59:20] INFO [mysite:187] None
[13/Nov/2018 19:00:04] INFO [mysite:187] None
[13/Nov/2018 19:00:14] INFO [mysite:192] post method
[13/Nov/2018 19:00:14] INFO [mysite:195] form is valid
[13/Nov/2018 19:00:14] INFO [mysite:200] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange']
[13/Nov/2018 19:00:14] INFO [mysite:203] hi
[13/Nov/2018 19:00:14] INFO [mysite:205] worked out
[13/Nov/2018 19:00:21] INFO [mysite:187] None
[13/Nov/2018 19:00:37] INFO [mysite:192] post method
[13/Nov/2018 19:00:37] INFO [mysite:195] form is valid
[13/Nov/2018 19:00:37] INFO [mysite:200] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange']
[13/Nov/2018 19:00:37] INFO [mysite:203] second
[13/Nov/2018 19:00:37] INFO [mysite:205] worked out
[13/Nov/2018 19:01:01] INFO [mysite:146] post method
[13/Nov/2018 19:01:01] INFO [mysite:149] form is valid
[13/Nov/2018 19:01:01] INFO [mysite:154] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange']
[13/Nov/2018 19:01:01] INFO [mysite:157] hi
[13/Nov/2018 19:01:01] INFO [mysite:159] worked out
[13/Nov/2018 19:01:59] INFO [mysite:146] post method
[13/Nov/2018 19:01:59] INFO [mysite:149] form is valid
[13/Nov/2018 19:01:59] INFO [mysite:154] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange']
[13/Nov/2018 19:01:59] INFO [mysite:157] hi
[13/Nov/2018 19:01:59] INFO [mysite:159] worked out
[13/Nov/2018 19:03:20] INFO [mysite:146] post method
[13/Nov/2018 19:03:20] INFO [mysite:149] form is valid
[13/Nov/2018 19:03:20] INFO [mysite:154] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange']
[13/Nov/2018 19:03:20] INFO [mysite:157] second
[13/Nov/2018 19:03:20] INFO [mysite:159] worked out
[13/Nov/2018 19:04:16] INFO [mysite:146] post method
[13/Nov/2018 19:04:16] INFO [mysite:149] form is valid
[13/Nov/2018 19:04:16] INFO [mysite:154] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange']
[13/Nov/2018 19:04:16] INFO [mysite:157] two
[13/Nov/2018 19:04:16] INFO [mysite:159] worked out
[13/Nov/2018 19:04:56] INFO [mysite:187] None
[13/Nov/2018 19:04:59] INFO [mysite:192] post method
[13/Nov/2018 19:04:59] INFO [mysite:195] form is valid
[13/Nov/2018 19:04:59] INFO [mysite:199] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange']
[13/Nov/2018 19:04:59] INFO [mysite:202] hi
[13/Nov/2018 19:04:59] INFO [mysite:204] worked out
[13/Nov/2018 19:06:13] INFO [mysite:187] None
[13/Nov/2018 19:06:16] INFO [mysite:192] post method
[13/Nov/2018 19:06:16] INFO [mysite:195] form is valid
[13/Nov/2018 19:06:16] INFO [mysite:199] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange']
[13/Nov/2018 19:06:16] INFO [mysite:202] second
[13/Nov/2018 19:06:16] INFO [mysite:204] worked out
[13/Nov/2018 19:06:46] INFO [mysite:187] None
[13/Nov/2018 19:06:49] INFO [mysite:192] post method
[13/Nov/2018 19:06:49] INFO [mysite:195] form is valid
[13/Nov/2018 19:06:49] INFO [mysite:199] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange']
[13/Nov/2018 19:06:49] INFO [mysite:202] bla
[13/Nov/2018 19:06:49] INFO [mysite:204] worked out
[13/Nov/2018 19:06:56] INFO [mysite:187] None
[13/Nov/2018 19:07:02] INFO [mysite:192] post method
[13/Nov/2018 19:07:02] INFO [mysite:195] form is valid
[13/Nov/2018 19:07:02] INFO [mysite:199] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange']
[13/Nov/2018 19:07:02] INFO [mysite:202] mist
[13/Nov/2018 19:07:37] INFO [mysite:192] post method
[13/Nov/2018 19:07:37] INFO [mysite:195] form is valid
[13/Nov/2018 19:07:37] INFO [mysite:199] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange']
[13/Nov/2018 19:07:37] INFO [mysite:202] mist
[13/Nov/2018 19:09:22] INFO [mysite:192] post method
[13/Nov/2018 19:09:22] INFO [mysite:195] form is valid
[13/Nov/2018 19:09:22] INFO [mysite:199] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange']
[13/Nov/2018 19:09:22] INFO [mysite:202] strange
[13/Nov/2018 19:09:22] INFO [mysite:204] worked out
[13/Nov/2018 19:09:37] INFO [mysite:187] None
[13/Nov/2018 19:10:10] INFO [mysite:192] post method
[13/Nov/2018 19:10:10] INFO [mysite:195] form is valid
[13/Nov/2018 19:10:10] INFO [mysite:199] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange']
[13/Nov/2018 19:10:10] INFO [mysite:202] hi
[13/Nov/2018 19:10:10] INFO [mysite:204] worked out
[13/Nov/2018 19:10:10] INFO [mysite:187] None
[13/Nov/2018 19:10:49] INFO [mysite:187] None
[13/Nov/2018 19:11:31] INFO [mysite:187] None
[13/Nov/2018 19:11:34] INFO [mysite:187] None
[13/Nov/2018 19:11:46] INFO [mysite:187] None
[13/Nov/2018 19:12:23] INFO [mysite:187] None
[13/Nov/2018 19:12:58] INFO [mysite:187] None
[13/Nov/2018 19:14:27] INFO [mysite:157] None
[13/Nov/2018 19:14:49] INFO [mysite:157] None
[13/Nov/2018 19:14:53] INFO [mysite:157] hi
[13/Nov/2018 19:14:57] INFO [mysite:162] post method
[13/Nov/2018 19:14:57] INFO [mysite:165] form is valid
[13/Nov/2018 19:14:57] INFO [mysite:169] ['hi', 'first', 'test', 'bayern', 'second', 'bla', 'sunday', 'studienbüro', 'two', 'visual studio code', 'wow', 'strange']
[13/Nov/2018 19:14:57] INFO [mysite:172] test
[13/Nov/2018 19:14:57] INFO [mysite:174] worked out
[13/Nov/2018 19:14:57] INFO [mysite:157] None
[14/Nov/2018 13:29:55] INFO [mysite:157] None
[14/Nov/2018 13:30:25] INFO [mysite:157] None
[14/Nov/2018 13:30:59] INFO [mysite:157] None
[14/Nov/2018 13:33:17] INFO [mysite:157] None
[14/Nov/2018 13:34:02] INFO [mysite:157] None
[14/Nov/2018 13:34:10] INFO [mysite:157] None
[14/Nov/2018 13:35:21] INFO [mysite:157] None
[14/Nov/2018 13:35:24] INFO [mysite:157] None
[14/Nov/2018 13:37:13] INFO [mysite:157] None
[14/Nov/2018 13:37:31] INFO [mysite:157] None
[14/Nov/2018 13:37:50] INFO [mysite:157] hi
[14/Nov/2018 13:41:11] INFO [mysite:157] hi
[14/Nov/2018 13:42:05] INFO [mysite:157] hi
[14/Nov/2018 13:42:47] INFO [mysite:157] hi
[14/Nov/2018 13:43:27] INFO [mysite:157] hi
[14/Nov/2018 13:44:20] INFO [mysite:157] hi
[14/Nov/2018 13:44:48] INFO [mysite:157] hi
[14/Nov/2018 13:45:27] INFO [mysite:157] hi
[14/Nov/2018 13:46:42] INFO [mysite:157] hi
[14/Nov/2018 13:47:09] INFO [mysite:157] hi
[14/Nov/2018 13:48:31] INFO [mysite:157] hi
[14/Nov/2018 13:50:41] INFO [mysite:157] hi
[15/Nov/2018 08:22:51] INFO [mysite:157] hi
[15/Nov/2018 08:24:24] INFO [mysite:157] hi
[15/Nov/2018 08:25:16] INFO [mysite:157] hi
[15/Nov/2018 08:26:46] INFO [mysite:157] hi
[15/Nov/2018 08:27:01] INFO [mysite:157] hi
[15/Nov/2018 08:28:54] INFO [mysite:157] hi
[15/Nov/2018 08:29:11] INFO [mysite:157] hi
[15/Nov/2018 08:31:03] INFO [mysite:157] hi
[15/Nov/2018 08:31:20] INFO [mysite:157] hi
[15/Nov/2018 08:31:42] INFO [mysite:157] None
[15/Nov/2018 08:31:48] INFO [mysite:157] hi
[15/Nov/2018 08:32:34] INFO [mysite:157] hi
[15/Nov/2018 08:32:47] INFO [mysite:157] hi
[15/Nov/2018 11:14:07] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: test>]>
[15/Nov/2018 11:14:07] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:14:07] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Bavaria>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:22:27] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: test>]>
[15/Nov/2018 11:22:27] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:22:28] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Bavaria>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:23:47] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: test>]>
[15/Nov/2018 11:23:48] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:23:48] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Bavaria>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:28:09] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: test>]>
[15/Nov/2018 11:28:09] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:28:09] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Bavaria>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:28:14] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: test>]>
[15/Nov/2018 11:28:14] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:28:14] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Bavaria>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:28:31] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: test>]>
[15/Nov/2018 11:28:31] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:28:31] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Bavaria>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:29:03] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: test>]>
[15/Nov/2018 11:29:03] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:29:03] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Bavaria>, <Post: Das ist ein Titel>]>
[15/Nov/2018 11:29:37] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: test>]>
[15/Nov/2018 11:29:37] INFO [mysite:149] <QuerySet [<Post: Strange Things>, <Post: teeeest>, <Post: Das ist ein Titel>]>
+750
View File
@@ -0,0 +1,750 @@
[16/Oct/2018 19:58:49] INFO [mysite:150] test
[16/Oct/2018 20:00:13] INFO [mysite:150] test
[16/Oct/2018 20:00:44] INFO [mysite:150] test
[18/Oct/2018 16:49:10] INFO [mysite:150] test
[18/Oct/2018 16:50:20] INFO [mysite:149] test
[18/Oct/2018 16:53:59] INFO [mysite:149] test
[18/Oct/2018 17:02:15] INFO [mysite:149] Here ist the log
[18/Oct/2018 17:03:03] INFO [mysite:149] Here ist the log
[18/Oct/2018 17:04:21] INFO [mysite:150] Here ist the log
[18/Oct/2018 17:08:44] INFO [mysite:150] Here ist the log
[18/Oct/2018 17:22:00] INFO [mysite:150] Here ist the log
[18/Oct/2018 17:29:57] INFO [mysite:150] Here ist the log
[18/Oct/2018 17:33:51] INFO [mysite:150] Here ist the log
[18/Oct/2018 17:37:15] INFO [mysite:147] hei
[18/Oct/2018 17:38:10] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 17:40:53] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 17:41:34] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 17:41:45] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 17:42:04] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 17:47:59] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 17:49:27] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 17:49:43] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 17:50:18] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:04:38] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:07:12] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:08:17] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:09:29] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:10:27] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:10:59] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:13:11] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:14:22] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:14:45] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:17:07] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:23:37] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:42:53] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:43:28] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 18:46:58] INFO [mysite:147] CustomUser object (25)
[18/Oct/2018 19:12:55] INFO [mysite:147] CustomUser object (25)
[19/Oct/2018 09:18:42] INFO [mysite:147] CustomUser object (25)
[19/Oct/2018 09:19:10] INFO [mysite:148] <QuerySet []>
[19/Oct/2018 10:24:35] INFO [mysite:148] <QuerySet []>
[19/Oct/2018 16:52:08] INFO [mysite:148] <QuerySet []>
[19/Oct/2018 17:33:50] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 17:38:33] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 17:39:08] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 17:41:43] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 17:42:00] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 17:44:10] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 17:47:28] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 17:48:28] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 17:56:41] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 18:06:57] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 18:07:17] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 18:07:31] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 18:12:56] INFO [mysite:149] CustomUser object (25)
[19/Oct/2018 18:15:29] INFO [mysite:149] CustomUser object (25)
[20/Oct/2018 17:20:58] INFO [mysite:149] CustomUser object (25)
[20/Oct/2018 17:54:57] INFO [mysite:149] CustomUser object (25)
[20/Oct/2018 18:03:09] INFO [mysite:149] CustomUser object (25)
[20/Oct/2018 18:18:52] INFO [mysite:149] CustomUser object (25)
[20/Oct/2018 19:14:57] INFO [mysite:183] None
[20/Oct/2018 19:15:00] INFO [mysite:183] test
[20/Oct/2018 19:15:45] INFO [mysite:183] test
[20/Oct/2018 19:17:52] INFO [mysite:183] test
[20/Oct/2018 19:18:31] INFO [mysite:183] test
[20/Oct/2018 19:19:01] INFO [mysite:183] test
[20/Oct/2018 19:20:08] INFO [mysite:184] test
[20/Oct/2018 19:24:45] INFO [mysite:184] None
[20/Oct/2018 19:26:30] INFO [mysite:184] None
[20/Oct/2018 19:29:44] INFO [mysite:184] test
[20/Oct/2018 19:32:09] INFO [mysite:184] test
[20/Oct/2018 19:33:14] INFO [mysite:184] 5
[20/Oct/2018 22:26:02] INFO [mysite:184] hi
[20/Oct/2018 22:26:09] INFO [mysite:184] 2
[20/Oct/2018 22:26:39] INFO [mysite:184] 2
[20/Oct/2018 22:35:49] INFO [mysite:183] 2
[20/Oct/2018 22:35:55] INFO [mysite:183] 3
[20/Oct/2018 22:51:06] INFO [mysite:183] hi
[20/Oct/2018 22:53:24] INFO [mysite:183] hi
[20/Oct/2018 22:54:12] INFO [mysite:183] hi
[20/Oct/2018 22:57:38] INFO [mysite:181] <QuerySet [<Post: first post>, <Post: second bla>, <Post: Third one>]>
[20/Oct/2018 22:57:39] INFO [mysite:184] hi
[20/Oct/2018 22:59:11] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 22:59:11] INFO [mysite:184] hi
[20/Oct/2018 23:01:53] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:01:53] INFO [mysite:184] hi
[20/Oct/2018 23:02:06] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:02:06] INFO [mysite:184] 5
[20/Oct/2018 23:02:22] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:02:22] INFO [mysite:184] 5
[20/Oct/2018 23:02:45] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:02:45] INFO [mysite:184] 5
[20/Oct/2018 23:03:07] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:03:07] INFO [mysite:184] 5
[20/Oct/2018 23:03:46] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:03:46] INFO [mysite:184] 5
[20/Oct/2018 23:04:35] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:04:35] INFO [mysite:184] 5
[20/Oct/2018 23:06:49] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:06:49] INFO [mysite:184] hi
[20/Oct/2018 23:15:41] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:15:41] INFO [mysite:184] hi
[20/Oct/2018 23:17:19] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:17:19] INFO [mysite:184] hi
[20/Oct/2018 23:17:38] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:17:38] INFO [mysite:184] hi
[20/Oct/2018 23:19:11] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:19:11] INFO [mysite:184] hi
[20/Oct/2018 23:24:22] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:24:23] INFO [mysite:184] hi
[20/Oct/2018 23:24:42] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:24:42] INFO [mysite:184] hi
[20/Oct/2018 23:24:49] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:24:49] INFO [mysite:184] hi
[20/Oct/2018 23:24:54] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:24:54] INFO [mysite:184] test
[20/Oct/2018 23:25:01] INFO [mysite:181] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[20/Oct/2018 23:25:01] INFO [mysite:184] third
[20/Oct/2018 23:28:54] INFO [mysite:182] None
[20/Oct/2018 23:29:00] INFO [mysite:182] hi
[20/Oct/2018 23:29:42] INFO [mysite:182] hi
[20/Oct/2018 23:30:53] INFO [mysite:182] hi
[20/Oct/2018 23:34:29] INFO [mysite:184] hi
[20/Oct/2018 23:34:34] INFO [mysite:54] <QuerySet [<Post: second bla>]>
[20/Oct/2018 23:38:12] INFO [mysite:54] <QuerySet [<Post: second bla>]>
[20/Oct/2018 23:38:18] INFO [mysite:184] None
[20/Oct/2018 23:38:25] INFO [mysite:184] hi
[20/Oct/2018 23:40:03] INFO [mysite:184] hi
[20/Oct/2018 23:40:10] INFO [mysite:184] first
[20/Oct/2018 23:41:01] INFO [mysite:184] first
[20/Oct/2018 23:41:12] INFO [mysite:184] h
[20/Oct/2018 23:41:28] INFO [mysite:184] h
[20/Oct/2018 23:41:32] INFO [mysite:184] h
[20/Oct/2018 23:41:38] INFO [mysite:184] h
[20/Oct/2018 23:41:40] INFO [mysite:184] hi
[20/Oct/2018 23:41:50] INFO [mysite:184] hi
[20/Oct/2018 23:41:56] INFO [mysite:184] taggit
[21/Oct/2018 10:35:50] INFO [mysite:184] taggit
[21/Oct/2018 10:35:55] INFO [mysite:184]
[21/Oct/2018 10:38:17] INFO [mysite:184] None
[21/Oct/2018 12:59:59] INFO [mysite:184] None
[22/Oct/2018 14:31:54] INFO [mysite:184] None
[22/Oct/2018 14:32:03] INFO [mysite:150] CustomUser object (25)
[22/Oct/2018 14:40:08] INFO [mysite:150] CustomUser object (25)
[22/Oct/2018 14:43:18] INFO [mysite:150] CustomUser object (25)
[22/Oct/2018 14:43:31] INFO [mysite:150] CustomUser object (25)
[22/Oct/2018 14:50:32] INFO [mysite:150] esthi
[22/Oct/2018 14:50:32] INFO [mysite:152] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 14:51:10] INFO [mysite:150] stefan
[22/Oct/2018 14:51:10] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 14:56:36] INFO [mysite:150] stefan
[22/Oct/2018 14:56:36] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 14:56:56] INFO [mysite:150] stefan
[22/Oct/2018 14:56:56] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 14:57:15] INFO [mysite:150] stefan
[22/Oct/2018 14:57:15] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 14:57:39] INFO [mysite:150] stefan
[22/Oct/2018 14:57:39] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 14:58:53] INFO [mysite:150] stefan
[22/Oct/2018 14:58:53] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 14:59:01] INFO [mysite:150] stefan
[22/Oct/2018 14:59:01] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 14:59:55] INFO [mysite:150] stefan
[22/Oct/2018 14:59:55] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 15:02:16] INFO [mysite:150] stefan
[22/Oct/2018 15:02:16] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 15:03:09] INFO [mysite:150] stefan
[22/Oct/2018 15:03:09] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 15:03:41] INFO [mysite:150] stefan
[22/Oct/2018 15:03:41] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 15:05:17] INFO [mysite:184] None
[22/Oct/2018 15:05:21] INFO [mysite:184] hi
[22/Oct/2018 15:07:51] INFO [mysite:185] None
[22/Oct/2018 15:07:53] INFO [mysite:150] stefan
[22/Oct/2018 15:07:53] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 15:08:37] INFO [mysite:150] stefan
[22/Oct/2018 15:08:37] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 15:09:08] INFO [mysite:151] stefan
[22/Oct/2018 15:09:08] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 15:09:58] INFO [mysite:151] stefan
[22/Oct/2018 15:09:58] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 15:11:00] INFO [mysite:151] stefan
[22/Oct/2018 15:11:00] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 15:11:41] INFO [mysite:151] stefan
[22/Oct/2018 15:11:41] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 15:12:14] INFO [mysite:151] stefan
[22/Oct/2018 15:12:14] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 15:14:15] INFO [mysite:151] stefan
[22/Oct/2018 15:14:15] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 17:37:38] INFO [mysite:154] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 17:38:19] INFO [mysite:154] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:39:44] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:39:44] INFO [mysite:155] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:41:03] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:41:19] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:41:20] INFO [mysite:155] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:45:07] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:45:07] INFO [mysite:155] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:45:32] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:45:32] INFO [mysite:155] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:45:47] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:45:47] INFO [mysite:155] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:45:47] INFO [mysite:160] ['bamberg']
[22/Oct/2018 17:45:47] INFO [mysite:160] ['bamberg', 'test']
[22/Oct/2018 17:49:21] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:49:21] INFO [mysite:155] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:49:21] INFO [mysite:159] ['bamberg']
[22/Oct/2018 17:49:21] INFO [mysite:159] ['bamberg', 'test']
[22/Oct/2018 17:51:20] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:51:20] INFO [mysite:155] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:51:20] INFO [mysite:159] ['bamberg']
[22/Oct/2018 17:51:20] INFO [mysite:159] ['bamberg', 'test']
[22/Oct/2018 17:51:27] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:51:27] INFO [mysite:155] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:51:28] INFO [mysite:159] ['bamberg']
[22/Oct/2018 17:51:28] INFO [mysite:159] ['bamberg', 'test']
[22/Oct/2018 17:53:13] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:53:55] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:53:55] INFO [mysite:154] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:53:55] INFO [mysite:158] ['bamberg']
[22/Oct/2018 17:53:55] INFO [mysite:158] ['bamberg', 'test']
[22/Oct/2018 17:54:44] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:54:44] INFO [mysite:154] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:55:02] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:55:02] INFO [mysite:154] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:55:02] INFO [mysite:159] ['bamberg']
[22/Oct/2018 17:55:02] INFO [mysite:159] ['bamberg', 'test']
[22/Oct/2018 17:55:14] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:55:14] INFO [mysite:154] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:55:14] INFO [mysite:159] <QuerySet []>
[22/Oct/2018 17:55:14] INFO [mysite:159] <QuerySet []>
[22/Oct/2018 17:56:12] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:56:12] INFO [mysite:154] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:56:12] INFO [mysite:159] bamberg
[22/Oct/2018 17:56:12] INFO [mysite:159] test
[22/Oct/2018 17:56:34] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:56:34] INFO [mysite:154] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:56:34] INFO [mysite:159] bamberg
[22/Oct/2018 17:56:34] INFO [mysite:159] test
[22/Oct/2018 17:57:48] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:57:48] INFO [mysite:154] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:57:49] INFO [mysite:159] <QuerySet []>
[22/Oct/2018 17:57:49] INFO [mysite:159] <QuerySet []>
[22/Oct/2018 17:59:46] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:59:46] INFO [mysite:154] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 17:59:46] INFO [mysite:159] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 17:59:46] INFO [mysite:159] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 18:00:06] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 18:00:06] INFO [mysite:154] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:00:06] INFO [mysite:159] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 18:00:06] INFO [mysite:159] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 18:00:15] INFO [mysite:151] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 18:00:15] INFO [mysite:154] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:00:15] INFO [mysite:159] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 18:00:15] INFO [mysite:159] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 18:01:25] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:01:25] INFO [mysite:158] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 18:01:25] INFO [mysite:158] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 18:01:45] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:02:47] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:03:12] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:03:12] INFO [mysite:158] <QuerySet []>
[22/Oct/2018 18:03:12] INFO [mysite:158] <QuerySet []>
[22/Oct/2018 18:04:45] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:05:24] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:05:24] INFO [mysite:157] bamberg
[22/Oct/2018 18:05:24] INFO [mysite:159] <QuerySet []>
[22/Oct/2018 18:05:24] INFO [mysite:157] test
[22/Oct/2018 18:05:24] INFO [mysite:159] <QuerySet []>
[22/Oct/2018 18:13:35] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:13:35] INFO [mysite:157] bamberg
[22/Oct/2018 18:14:16] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:14:16] INFO [mysite:157] bamberg
[22/Oct/2018 18:19:16] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:19:16] INFO [mysite:157] bamberg
[22/Oct/2018 18:38:14] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:38:14] INFO [mysite:157] bamberg
[22/Oct/2018 18:41:50] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:41:50] INFO [mysite:157] bamberg
[22/Oct/2018 18:41:50] INFO [mysite:159] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 18:41:50] INFO [mysite:157] test
[22/Oct/2018 18:41:50] INFO [mysite:159] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[22/Oct/2018 18:45:55] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:45:55] INFO [mysite:157] bamberg
[22/Oct/2018 18:46:39] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:46:39] INFO [mysite:157] bamberg
[22/Oct/2018 18:46:39] INFO [mysite:159] <QuerySet []>
[22/Oct/2018 18:46:39] INFO [mysite:157] test
[22/Oct/2018 18:46:39] INFO [mysite:159] <QuerySet [<Post: first post>, <Post: second bla>, <Post: Third one>]>
[22/Oct/2018 18:47:12] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 18:47:12] INFO [mysite:157] stefan
[22/Oct/2018 18:47:12] INFO [mysite:159] <QuerySet []>
[22/Oct/2018 18:48:22] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 18:48:22] INFO [mysite:157] stefan
[22/Oct/2018 18:48:22] INFO [mysite:159] <QuerySet [<Post: Crazy>]>
[22/Oct/2018 18:50:37] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 18:50:38] INFO [mysite:157] stefan
[22/Oct/2018 18:52:01] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 18:52:01] INFO [mysite:157] stefan
[22/Oct/2018 18:52:36] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 18:52:36] INFO [mysite:157] stefan
[22/Oct/2018 18:53:07] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[22/Oct/2018 18:53:07] INFO [mysite:157] stefan
[22/Oct/2018 18:53:20] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:53:20] INFO [mysite:157] bamberg
[22/Oct/2018 18:53:20] INFO [mysite:157] test
[22/Oct/2018 18:54:05] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:54:05] INFO [mysite:157] bamberg
[22/Oct/2018 18:54:20] INFO [mysite:153] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:54:21] INFO [mysite:157] bamberg
[22/Oct/2018 18:54:21] INFO [mysite:157] test
[22/Oct/2018 18:54:46] INFO [mysite:152] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:54:46] INFO [mysite:156] bamberg
[22/Oct/2018 18:54:46] INFO [mysite:156] test
[22/Oct/2018 18:55:43] INFO [mysite:152] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[22/Oct/2018 18:55:43] INFO [mysite:156] bamberg
[22/Oct/2018 18:55:43] INFO [mysite:156] test
[24/Oct/2018 15:10:56] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[24/Oct/2018 15:10:56] INFO [mysite:156] stefan
[24/Oct/2018 15:11:37] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[24/Oct/2018 15:11:37] INFO [mysite:156] stefan
[24/Oct/2018 15:11:37] INFO [mysite:158] <QuerySet []>
[24/Oct/2018 15:13:48] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[24/Oct/2018 15:13:48] INFO [mysite:156] stefan
[24/Oct/2018 15:13:48] INFO [mysite:158] <QuerySet []>
[24/Oct/2018 15:15:46] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[24/Oct/2018 15:15:46] INFO [mysite:157] stefan
[24/Oct/2018 15:15:55] INFO [mysite:153] <QuerySet [<Tag: stefan>]>
[24/Oct/2018 15:15:55] INFO [mysite:157] stefan
[24/Oct/2018 15:15:55] INFO [mysite:159] <QuerySet []>
[24/Oct/2018 15:17:17] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[24/Oct/2018 15:17:17] INFO [mysite:156] stefan
[24/Oct/2018 15:17:17] INFO [mysite:158] <QuerySet []>
[24/Oct/2018 15:18:27] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[24/Oct/2018 15:18:27] INFO [mysite:156] stefan
[24/Oct/2018 15:18:27] INFO [mysite:158] <QuerySet []>
[24/Oct/2018 15:21:10] INFO [mysite:150] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[24/Oct/2018 15:21:10] INFO [mysite:154] <QuerySet [<Tag: stefan>]>
[24/Oct/2018 15:21:10] INFO [mysite:158] stefan
[24/Oct/2018 15:21:10] INFO [mysite:160] <QuerySet []>
[24/Oct/2018 15:22:12] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[24/Oct/2018 15:22:12] INFO [mysite:156] ['stefan']
[24/Oct/2018 15:22:12] INFO [mysite:158] <QuerySet []>
[24/Oct/2018 15:22:29] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[24/Oct/2018 15:22:29] INFO [mysite:156] ['stefan']
[24/Oct/2018 15:22:57] INFO [mysite:152] <QuerySet [<Tag: stefan>]>
[24/Oct/2018 15:22:57] INFO [mysite:155] <QuerySet []>
[24/Oct/2018 15:23:36] INFO [mysite:152] <QuerySet [<Tag: stefan>, <Tag: test>]>
[24/Oct/2018 15:23:36] INFO [mysite:155] <QuerySet []>
[24/Oct/2018 15:23:36] INFO [mysite:155] <QuerySet [<Post: Third one>, <Post: first post>, <Post: second bla>]>
[24/Oct/2018 15:24:29] INFO [mysite:152] <QuerySet [<Tag: bamberg>, <Tag: test>, <Tag: wieder>]>
[24/Oct/2018 15:24:29] INFO [mysite:155] <QuerySet []>
[24/Oct/2018 15:24:29] INFO [mysite:155] <QuerySet [<Post: Third one>, <Post: first post>, <Post: second bla>]>
[24/Oct/2018 15:24:29] INFO [mysite:155] <QuerySet []>
[24/Oct/2018 15:26:03] INFO [mysite:152] <QuerySet [<Tag: lukas>, <Tag: hi>]>
[24/Oct/2018 15:26:03] INFO [mysite:155] <QuerySet []>
[24/Oct/2018 15:26:03] INFO [mysite:155] <QuerySet [<Post: Third one>, <Post: second bla>]>
[24/Oct/2018 15:51:54] INFO [mysite:152] <QuerySet [<Tag: bamberg>, <Tag: test>, <Tag: wieder>]>
[24/Oct/2018 15:51:55] INFO [mysite:155] <QuerySet []>
[24/Oct/2018 15:51:55] INFO [mysite:155] <QuerySet [<Post: Third one>, <Post: first post>, <Post: second bla>]>
[24/Oct/2018 15:51:55] INFO [mysite:155] <QuerySet []>
[24/Oct/2018 15:53:01] INFO [mysite:152] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[24/Oct/2018 15:53:01] INFO [mysite:155] <QuerySet []>
[24/Oct/2018 15:53:01] INFO [mysite:155] <QuerySet [<Post: Third one>, <Post: first post>, <Post: second bla>]>
[24/Oct/2018 15:53:28] INFO [mysite:152] <QuerySet [<Tag: bamberg>, <Tag: test>, <Tag: this is a new one>]>
[24/Oct/2018 15:53:28] INFO [mysite:155] <QuerySet []>
[24/Oct/2018 15:53:28] INFO [mysite:155] <QuerySet [<Post: Third one>, <Post: first post>, <Post: second bla>]>
[24/Oct/2018 15:53:28] INFO [mysite:155] <QuerySet []>
[24/Oct/2018 18:41:24] INFO [mysite:186] None
[24/Oct/2018 18:41:31] INFO [mysite:186] bla
[24/Oct/2018 18:42:12] INFO [mysite:186] avoiddouble
[24/Oct/2018 18:42:20] INFO [mysite:186] hi
[24/Oct/2018 18:56:30] INFO [mysite:158] <QuerySet [<Tag: bamberg>, <Tag: test>]>
[24/Oct/2018 18:56:30] INFO [mysite:161] <QuerySet []>
[24/Oct/2018 18:56:30] INFO [mysite:161] <QuerySet [<Post: Third one>, <Post: first post>, <Post: second bla>]>
[24/Oct/2018 18:56:45] INFO [mysite:190] None
[24/Oct/2018 18:56:49] INFO [mysite:190] bamberg
[24/Oct/2018 18:57:29] INFO [mysite:189] bamberg
[24/Oct/2018 19:00:30] INFO [mysite:189] None
[24/Oct/2018 19:00:30] INFO [mysite:191] <QuerySet []>
[24/Oct/2018 19:00:33] INFO [mysite:189] hi
[24/Oct/2018 19:00:33] INFO [mysite:191] <QuerySet [<Post: second bla>, <Post: Third one>]>
[24/Oct/2018 19:00:38] INFO [mysite:189] bamberg
[24/Oct/2018 19:00:38] INFO [mysite:191] <QuerySet []>
[24/Oct/2018 19:00:54] INFO [mysite:189] bamberg
[24/Oct/2018 19:00:54] INFO [mysite:191] <QuerySet []>
[24/Oct/2018 19:01:16] INFO [mysite:189] test
[24/Oct/2018 19:01:16] INFO [mysite:191] <QuerySet [<Post: second bla>, <Post: first post>, <Post: Third one>]>
[24/Oct/2018 19:01:20] INFO [mysite:189] third
[24/Oct/2018 19:01:20] INFO [mysite:191] <QuerySet [<Post: Third one>]>
[24/Oct/2018 19:01:35] INFO [mysite:189] None
[24/Oct/2018 19:01:35] INFO [mysite:191] <QuerySet []>
[24/Oct/2018 19:01:40] INFO [mysite:189] bamberg
[24/Oct/2018 19:01:40] INFO [mysite:191] <QuerySet []>
[24/Oct/2018 19:03:03] INFO [mysite:189] None
[24/Oct/2018 19:03:03] INFO [mysite:191] <QuerySet []>
[24/Oct/2018 19:03:08] INFO [mysite:189] bamberg
[24/Oct/2018 19:03:08] INFO [mysite:191] <QuerySet []>
[24/Oct/2018 19:03:28] INFO [mysite:189] bamberg
[24/Oct/2018 19:03:28] INFO [mysite:191] <QuerySet [<Post: Third one>]>
[24/Oct/2018 19:03:45] INFO [mysite:189] bamberg
[24/Oct/2018 19:03:45] INFO [mysite:191] <QuerySet [<Post: Third one>, <Post: here i go again>]>
[30/Oct/2018 12:25:09] INFO [mysite:56] <QuerySet [<Post: Hi there>]>
[30/Oct/2018 12:25:11] INFO [mysite:56] <QuerySet [<Post: Hi there>, <Post: Bavaria>]>
[30/Oct/2018 12:25:26] INFO [mysite:189] None
[30/Oct/2018 12:25:34] INFO [mysite:189] bayern
[30/Oct/2018 12:29:44] INFO [mysite:189] None
[30/Oct/2018 12:43:44] INFO [mysite:190] None
[30/Oct/2018 12:47:17] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:47:21] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:47:46] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:48:00] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:48:29] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:48:29] INFO [mysite:138] hi
[30/Oct/2018 12:49:23] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:49:26] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:49:26] INFO [mysite:138] hi
[30/Oct/2018 12:49:26] INFO [mysite:144] ['hi']
[30/Oct/2018 12:49:47] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:49:50] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:49:50] INFO [mysite:138] hi
[30/Oct/2018 12:49:50] INFO [mysite:144] ['test']
[30/Oct/2018 12:50:02] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:50:06] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:50:06] INFO [mysite:138] hi
[30/Oct/2018 12:50:06] INFO [mysite:144] ['hi']
[30/Oct/2018 12:50:22] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:50:27] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:50:27] INFO [mysite:138] hi
[30/Oct/2018 12:50:27] INFO [mysite:144] ['hi']
[30/Oct/2018 12:50:47] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:50:50] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:50:50] INFO [mysite:138] hi
[30/Oct/2018 12:50:50] INFO [mysite:144] ['hi']
[30/Oct/2018 12:50:50] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 12:52:04] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:52:07] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:52:07] INFO [mysite:138] hi
[30/Oct/2018 12:52:07] INFO [mysite:144] ['hi']
[30/Oct/2018 12:52:07] INFO [mysite:149] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 12:52:17] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:52:20] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:52:20] INFO [mysite:138] hi
[30/Oct/2018 12:52:20] INFO [mysite:144] ['hi']
[30/Oct/2018 12:52:20] INFO [mysite:149] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 12:52:43] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:52:46] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:52:46] INFO [mysite:138] hi
[30/Oct/2018 12:52:46] INFO [mysite:144] ['hi']
[30/Oct/2018 12:52:46] INFO [mysite:149] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 12:52:46] INFO [mysite:151] second
[30/Oct/2018 12:53:44] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:53:47] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:53:47] INFO [mysite:138] hi
[30/Oct/2018 12:53:47] INFO [mysite:144] ['hi']
[30/Oct/2018 12:53:47] INFO [mysite:149] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 12:53:47] INFO [mysite:151] second
[30/Oct/2018 12:53:47] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:53:57] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:54:07] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:54:07] INFO [mysite:138] hi
[30/Oct/2018 12:54:07] INFO [mysite:144] ['hi']
[30/Oct/2018 12:54:07] INFO [mysite:149] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 12:54:07] INFO [mysite:151] second
[30/Oct/2018 12:54:07] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:54:14] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:54:14] INFO [mysite:138] hi
[30/Oct/2018 12:54:14] INFO [mysite:144] ['test']
[30/Oct/2018 12:54:14] INFO [mysite:149] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 12:54:14] INFO [mysite:151] second
[30/Oct/2018 12:54:14] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:54:38] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:54:38] INFO [mysite:138] hi
[30/Oct/2018 12:54:38] INFO [mysite:144] ['test']
[30/Oct/2018 12:54:38] INFO [mysite:149] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 12:54:38] INFO [mysite:151] second
[30/Oct/2018 12:54:38] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:54:54] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:54:57] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:54:57] INFO [mysite:138] hi
[30/Oct/2018 12:54:57] INFO [mysite:144] ['hi']
[30/Oct/2018 12:54:57] INFO [mysite:149] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 12:54:57] INFO [mysite:151] second
[30/Oct/2018 12:55:32] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:55:34] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:55:34] INFO [mysite:138] hi
[30/Oct/2018 12:55:34] INFO [mysite:144] ['hi']
[30/Oct/2018 12:55:34] INFO [mysite:149] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 12:55:53] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:55:55] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:55:55] INFO [mysite:138] hi
[30/Oct/2018 12:55:55] INFO [mysite:144] ['hi']
[30/Oct/2018 12:55:55] INFO [mysite:149] [<Tag: second>]
[30/Oct/2018 12:58:05] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:58:08] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:58:08] INFO [mysite:138] hi
[30/Oct/2018 12:58:08] INFO [mysite:144] ['hi']
[30/Oct/2018 12:58:08] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 12:58:08] INFO [mysite:150] [<Tag: second>]
[30/Oct/2018 12:58:57] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:59:00] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 12:59:00] INFO [mysite:138] hi
[30/Oct/2018 12:59:00] INFO [mysite:144] ['hi']
[30/Oct/2018 12:59:00] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 12:59:00] INFO [mysite:150] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 13:00:05] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:00:08] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:00:08] INFO [mysite:138] hi
[30/Oct/2018 13:00:08] INFO [mysite:148] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 13:00:08] INFO [mysite:150] now
[30/Oct/2018 13:00:16] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:00:19] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:00:19] INFO [mysite:138] hi
[30/Oct/2018 13:00:19] INFO [mysite:148] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 13:00:19] INFO [mysite:150] now
[30/Oct/2018 13:00:19] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:00:56] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:01:04] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:01:04] INFO [mysite:138] hi
[30/Oct/2018 13:01:04] INFO [mysite:148] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 13:01:48] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:01:51] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:01:51] INFO [mysite:138] hi
[30/Oct/2018 13:01:51] INFO [mysite:148] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 13:02:23] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:02:26] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:02:26] INFO [mysite:138] hi
[30/Oct/2018 13:02:26] INFO [mysite:148] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 13:02:35] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:02:35] INFO [mysite:138] hi
[30/Oct/2018 13:02:35] INFO [mysite:148] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 13:02:40] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:02:40] INFO [mysite:138] hi
[30/Oct/2018 13:02:40] INFO [mysite:148] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 13:04:12] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:04:16] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:04:16] INFO [mysite:138] hi
[30/Oct/2018 13:04:16] INFO [mysite:148] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 13:04:16] INFO [mysite:150] now
[30/Oct/2018 13:04:16] INFO [mysite:150] now
[30/Oct/2018 13:04:16] INFO [mysite:150] now
[30/Oct/2018 13:04:16] INFO [mysite:150] now
[30/Oct/2018 13:04:16] INFO [mysite:150] now
[30/Oct/2018 13:04:17] INFO [mysite:150] now
[30/Oct/2018 13:04:17] INFO [mysite:150] now
[30/Oct/2018 13:04:17] INFO [mysite:150] now
[30/Oct/2018 13:04:17] INFO [mysite:150] now
[30/Oct/2018 13:04:17] INFO [mysite:150] now
[30/Oct/2018 13:04:17] INFO [mysite:150] now
[30/Oct/2018 13:04:17] INFO [mysite:150] now
[30/Oct/2018 13:04:17] INFO [mysite:150] now
[30/Oct/2018 13:04:17] INFO [mysite:150] now
[30/Oct/2018 13:04:17] INFO [mysite:150] now
[30/Oct/2018 13:04:17] INFO [mysite:150] now
[30/Oct/2018 13:04:18] INFO [mysite:150] now
[30/Oct/2018 13:04:18] INFO [mysite:150] now
[30/Oct/2018 13:04:18] INFO [mysite:150] now
[30/Oct/2018 13:04:18] INFO [mysite:150] now
[30/Oct/2018 13:04:18] INFO [mysite:150] now
[30/Oct/2018 13:04:18] INFO [mysite:150] now
[30/Oct/2018 13:04:18] INFO [mysite:150] now
[30/Oct/2018 13:04:18] INFO [mysite:150] now
[30/Oct/2018 13:04:18] INFO [mysite:150] now
[30/Oct/2018 13:04:18] INFO [mysite:150] now
[30/Oct/2018 13:04:18] INFO [mysite:150] now
[30/Oct/2018 13:04:18] INFO [mysite:150] now
[30/Oct/2018 13:04:18] INFO [mysite:150] now
[30/Oct/2018 13:04:18] INFO [mysite:150] now
[30/Oct/2018 13:04:18] INFO [mysite:150] now
[30/Oct/2018 13:04:19] INFO [mysite:150] now
[30/Oct/2018 13:04:19] INFO [mysite:150] now
[30/Oct/2018 13:04:19] INFO [mysite:150] now
[30/Oct/2018 13:04:19] INFO [mysite:150] now
[30/Oct/2018 13:04:19] INFO [mysite:150] now
[30/Oct/2018 13:04:19] INFO [mysite:150] now
[30/Oct/2018 13:04:19] INFO [mysite:150] now
[30/Oct/2018 13:04:19] INFO [mysite:150] now
[30/Oct/2018 13:04:19] INFO [mysite:150] now
[30/Oct/2018 13:04:19] INFO [mysite:150] now
[30/Oct/2018 13:04:19] INFO [mysite:150] now
[30/Oct/2018 13:04:19] INFO [mysite:150] now
[30/Oct/2018 13:04:19] INFO [mysite:150] now
[30/Oct/2018 13:04:19] INFO [mysite:150] now
[30/Oct/2018 13:04:19] INFO [mysite:150] now
[30/Oct/2018 13:04:19] INFO [mysite:150] now
[30/Oct/2018 13:04:19] INFO [mysite:150] now
[30/Oct/2018 13:04:19] INFO [mysite:150] now
[30/Oct/2018 13:04:20] INFO [mysite:150] now
[30/Oct/2018 13:04:20] INFO [mysite:150] now
[30/Oct/2018 13:04:20] INFO [mysite:150] now
[30/Oct/2018 13:04:20] INFO [mysite:150] now
[30/Oct/2018 13:04:20] INFO [mysite:150] now
[30/Oct/2018 13:04:20] INFO [mysite:150] now
[30/Oct/2018 13:04:20] INFO [mysite:150] now
[30/Oct/2018 13:04:20] INFO [mysite:150] now
[30/Oct/2018 13:04:20] INFO [mysite:150] now
[30/Oct/2018 13:04:20] INFO [mysite:150] now
[30/Oct/2018 13:04:20] INFO [mysite:150] now
[30/Oct/2018 13:04:20] INFO [mysite:150] now
[30/Oct/2018 13:04:20] INFO [mysite:150] now
[30/Oct/2018 13:04:20] INFO [mysite:150] now
[30/Oct/2018 13:04:20] INFO [mysite:150] now
[30/Oct/2018 13:04:20] INFO [mysite:150] now
[30/Oct/2018 13:04:20] INFO [mysite:150] now
[30/Oct/2018 13:04:20] INFO [mysite:150] now
[30/Oct/2018 13:04:20] INFO [mysite:150] now
[30/Oct/2018 13:05:10] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:05:13] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:05:13] INFO [mysite:138] hi
[30/Oct/2018 13:05:13] INFO [mysite:148] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>, <Tag: [>, <Tag: <>, <Tag: T>, <Tag: a>, <Tag: g>, <Tag: :>, <Tag: >, <Tag: h>, <Tag: i>, <Tag: >>, <Tag: ,>, <Tag: f>, <Tag: r>, <Tag: s>, <Tag: t>, <Tag: e>, <Tag: b>, <Tag: y>, <Tag: n>, <Tag: c>, <Tag: o>, <Tag: d>, <Tag: ]>]
[30/Oct/2018 13:05:13] INFO [mysite:150] now
[30/Oct/2018 13:05:34] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:05:38] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:05:38] INFO [mysite:138] hi
[30/Oct/2018 13:05:38] INFO [mysite:148] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>, <Tag: [>, <Tag: <>, <Tag: T>, <Tag: a>, <Tag: g>, <Tag: :>, <Tag: >, <Tag: h>, <Tag: i>, <Tag: >>, <Tag: ,>, <Tag: f>, <Tag: r>, <Tag: s>, <Tag: t>, <Tag: e>, <Tag: b>, <Tag: y>, <Tag: n>, <Tag: c>, <Tag: o>, <Tag: d>, <Tag: ]>]
[30/Oct/2018 13:05:38] INFO [mysite:150] now
[30/Oct/2018 13:06:12] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:06:12] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:06:16] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:06:16] INFO [mysite:138] hi
[30/Oct/2018 13:06:16] INFO [mysite:148] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>, <Tag: [>, <Tag: <>, <Tag: T>, <Tag: a>, <Tag: g>, <Tag: :>, <Tag: >, <Tag: h>, <Tag: i>, <Tag: >>, <Tag: ,>, <Tag: f>, <Tag: r>, <Tag: s>, <Tag: t>, <Tag: e>, <Tag: b>, <Tag: y>, <Tag: n>, <Tag: c>, <Tag: o>, <Tag: d>, <Tag: ]>]
[30/Oct/2018 13:06:16] INFO [mysite:150] now
[30/Oct/2018 13:06:16] INFO [mysite:150] now
[30/Oct/2018 13:06:16] INFO [mysite:150] now
[30/Oct/2018 13:06:16] INFO [mysite:150] now
[30/Oct/2018 13:06:16] INFO [mysite:150] now
[30/Oct/2018 13:06:16] INFO [mysite:150] now
[30/Oct/2018 13:06:17] INFO [mysite:150] now
[30/Oct/2018 13:06:17] INFO [mysite:150] now
[30/Oct/2018 13:06:17] INFO [mysite:150] now
[30/Oct/2018 13:06:17] INFO [mysite:150] now
[30/Oct/2018 13:06:17] INFO [mysite:150] now
[30/Oct/2018 13:06:17] INFO [mysite:150] now
[30/Oct/2018 13:06:17] INFO [mysite:150] now
[30/Oct/2018 13:06:17] INFO [mysite:150] now
[30/Oct/2018 13:06:17] INFO [mysite:150] now
[30/Oct/2018 13:06:17] INFO [mysite:150] now
[30/Oct/2018 13:06:17] INFO [mysite:150] now
[30/Oct/2018 13:06:17] INFO [mysite:150] now
[30/Oct/2018 13:06:17] INFO [mysite:150] now
[30/Oct/2018 13:06:17] INFO [mysite:150] now
[30/Oct/2018 13:06:17] INFO [mysite:150] now
[30/Oct/2018 13:06:17] INFO [mysite:150] now
[30/Oct/2018 13:06:17] INFO [mysite:150] now
[30/Oct/2018 13:06:17] INFO [mysite:150] now
[30/Oct/2018 13:06:17] INFO [mysite:150] now
[30/Oct/2018 13:06:17] INFO [mysite:150] now
[30/Oct/2018 13:06:17] INFO [mysite:150] now
[30/Oct/2018 13:06:17] INFO [mysite:150] now
[30/Oct/2018 13:06:45] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:06:48] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:06:48] INFO [mysite:138] hi
[30/Oct/2018 13:06:49] INFO [mysite:148] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>, <Tag: [>, <Tag: <>, <Tag: T>, <Tag: a>, <Tag: g>, <Tag: :>, <Tag: >, <Tag: h>, <Tag: i>, <Tag: >>, <Tag: ,>, <Tag: f>, <Tag: r>, <Tag: s>, <Tag: t>, <Tag: e>, <Tag: b>, <Tag: y>, <Tag: n>, <Tag: c>, <Tag: o>, <Tag: d>, <Tag: ]>]
[30/Oct/2018 13:07:30] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:07:33] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:07:33] INFO [mysite:138] hi
[30/Oct/2018 13:09:13] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:09:16] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:09:16] INFO [mysite:138] hi
[30/Oct/2018 13:11:17] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:11:21] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:11:21] INFO [mysite:138] hi
[30/Oct/2018 13:12:34] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:12:37] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:12:37] INFO [mysite:138] hi
[30/Oct/2018 13:12:58] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:13:01] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:13:01] INFO [mysite:138] hi
[30/Oct/2018 13:15:34] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:15:37] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:15:37] INFO [mysite:138] hi
[30/Oct/2018 13:15:58] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:16:02] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:16:02] INFO [mysite:138] hi
[30/Oct/2018 13:16:02] INFO [mysite:146] {'m_tags': ['test']}
[30/Oct/2018 13:16:39] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:16:42] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:16:42] INFO [mysite:138] hi
[30/Oct/2018 13:16:42] INFO [mysite:146] ['test']
[30/Oct/2018 13:17:06] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:17:09] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:17:09] INFO [mysite:138] hi
[30/Oct/2018 13:17:09] INFO [mysite:146] ['test']
[30/Oct/2018 13:20:47] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:20:51] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:20:51] INFO [mysite:138] hi
[30/Oct/2018 13:20:51] INFO [mysite:146] ['test']
[30/Oct/2018 13:21:14] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:21:16] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:21:16] INFO [mysite:138] hi
[30/Oct/2018 13:21:16] INFO [mysite:146] ['test']
[30/Oct/2018 13:21:16] INFO [mysite:149] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>, <Tag: [>, <Tag: <>, <Tag: T>, <Tag: a>, <Tag: g>, <Tag: :>, <Tag: >, <Tag: h>, <Tag: i>, <Tag: >>, <Tag: ,>, <Tag: f>, <Tag: r>, <Tag: s>, <Tag: t>, <Tag: e>, <Tag: b>, <Tag: y>, <Tag: n>, <Tag: c>, <Tag: o>, <Tag: d>, <Tag: ]>]
[30/Oct/2018 13:27:04] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:27:08] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:27:08] INFO [mysite:138] hi
[30/Oct/2018 13:29:36] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:29:39] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:29:39] INFO [mysite:138] hi
[30/Oct/2018 13:29:39] INFO [mysite:146] ['test']
[30/Oct/2018 13:29:39] INFO [mysite:149] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>, <Tag: [>, <Tag: <>, <Tag: T>, <Tag: a>, <Tag: g>, <Tag: :>, <Tag: >, <Tag: h>, <Tag: i>, <Tag: >>, <Tag: ,>, <Tag: f>, <Tag: r>, <Tag: s>, <Tag: t>, <Tag: e>, <Tag: b>, <Tag: y>, <Tag: n>, <Tag: c>, <Tag: o>, <Tag: d>, <Tag: ]>]
[30/Oct/2018 13:30:53] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:30:53] INFO [mysite:138] hi
[30/Oct/2018 13:30:53] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>, <Tag: [>, <Tag: <>, <Tag: T>, <Tag: a>, <Tag: g>, <Tag: :>, <Tag: >, <Tag: h>, <Tag: i>, <Tag: >>, <Tag: ,>, <Tag: f>, <Tag: r>, <Tag: s>, <Tag: t>, '...(remaining elements truncated)...']>
[30/Oct/2018 13:30:53] INFO [mysite:149] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>, <Tag: [>, <Tag: <>, <Tag: T>, <Tag: a>, <Tag: g>, <Tag: :>, <Tag: >, <Tag: h>, <Tag: i>, <Tag: >>, <Tag: ,>, <Tag: f>, <Tag: r>, <Tag: s>, <Tag: t>, <Tag: e>, <Tag: b>, <Tag: y>, <Tag: n>, <Tag: c>, <Tag: o>, <Tag: d>, <Tag: ]>]
[30/Oct/2018 13:30:56] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:30:56] INFO [mysite:138] hi
[30/Oct/2018 13:30:56] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>, <Tag: [>, <Tag: <>, <Tag: T>, <Tag: a>, <Tag: g>, <Tag: :>, <Tag: >, <Tag: h>, <Tag: i>, <Tag: >>, <Tag: ,>, <Tag: f>, <Tag: r>, <Tag: s>, <Tag: t>, '...(remaining elements truncated)...']>
[30/Oct/2018 13:30:56] INFO [mysite:149] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>, <Tag: [>, <Tag: <>, <Tag: T>, <Tag: a>, <Tag: g>, <Tag: :>, <Tag: >, <Tag: h>, <Tag: i>, <Tag: >>, <Tag: ,>, <Tag: f>, <Tag: r>, <Tag: s>, <Tag: t>, <Tag: e>, <Tag: b>, <Tag: y>, <Tag: n>, <Tag: c>, <Tag: o>, <Tag: d>, <Tag: ]>]
[30/Oct/2018 13:31:51] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:31:54] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:31:54] INFO [mysite:138] hi
[30/Oct/2018 13:31:54] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 13:31:54] INFO [mysite:149] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 13:33:15] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:33:17] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:33:17] INFO [mysite:138] hi
[30/Oct/2018 13:33:17] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 13:33:17] INFO [mysite:149] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>, <Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 13:33:52] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:33:55] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:33:55] INFO [mysite:138] hi
[30/Oct/2018 13:33:55] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 13:33:55] INFO [mysite:149] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>, <Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 13:37:06] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:37:09] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:37:09] INFO [mysite:138] hi
[30/Oct/2018 13:38:31] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:38:34] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:38:34] INFO [mysite:138] hi
[30/Oct/2018 13:38:34] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 13:38:34] INFO [mysite:149] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>, <Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 13:38:54] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:38:57] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:38:57] INFO [mysite:138] hi
[30/Oct/2018 13:38:57] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 13:38:57] INFO [mysite:147] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 13:39:21] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:39:25] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:39:25] INFO [mysite:138] hi
[30/Oct/2018 13:39:25] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 13:39:25] INFO [mysite:147] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 13:39:40] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:39:43] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:39:43] INFO [mysite:138] hi
[30/Oct/2018 13:39:43] INFO [mysite:146] <QuerySet [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]>
[30/Oct/2018 13:39:43] INFO [mysite:147] [<Tag: hi>, <Tag: first>, <Tag: test>, <Tag: bayern>, <Tag: second>]
[30/Oct/2018 13:40:10] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:40:12] INFO [mysite:135] CustomUser object (2)
[30/Oct/2018 13:40:12] INFO [mysite:138] hi
[30/Oct/2018 13:40:34] INFO [mysite:135] CustomUser object (2)
Binary file not shown.

After

Width:  |  Height:  |  Size: 557 KiB

+10 -10
View File
@@ -13,7 +13,6 @@ https://docs.djangoproject.com/en/2.0/ref/settings/
import os
import re
import socket
import djcelery
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
@@ -47,8 +46,9 @@ INSTALLED_APPS = [
'application',
'taggit',
'taggit_templatetags2',
'djcelery',
'kombu.transport.django',
'post_office',
'hitcount',
]
MIDDLEWARE = [
@@ -254,11 +254,11 @@ if DEBUG:
'INTERCEPT_REDIRECTS': False,
}
# Celery settings
BROKER_URL = 'django://'
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_RESULT_BACKEND = 'djcelery.backends.database:DatabaseBackend'
CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"
djcelery.setup_loader()
EMAIL_BACKEND = 'post_office.EmailBackend'
EMAIL_HOST = 'smtp.web.de'
EMAIL_HOST_USER = "esther.kleinhenz@web.de"
EMAIL_PORT = 25 # default smtp port
EMAIL_HOST_PASSWORD = "2mSchneeinMikkeli"
EMAIL_USE_TLS = True
DEFAULT_FROM_EMAIL = 'your.generic.test.email@web.de'
+36
View File
@@ -0,0 +1,36 @@
altgraph==0.10.2
astroid==1.6.4
autopep8==1.3.5
backports-abc==0.5
backports.functools-lru-cache==1.5
bdist-mpkg==0.5.0
configparser==3.5.0
Django==1.11.15
django-classy-tags==0.8.0
django-taggit==0.23.0
django-taggit-templatetags2==1.6.1
enum34==1.1.6
futures==3.1.1
isort==4.3.4
lazy-object-proxy==1.3.1
macholib==1.5.1
mccabe==0.6.1
modulegraph==0.10.4
mysql-connector-python==8.0.12
nose==1.3.7
numpy==1.8.2
protobuf==3.6.1
py2app==0.7.3
pyasn1==0.4.4
pyasn1-modules==0.2.2
pycodestyle==2.4.0
pylint==1.9.1
pyparsing==2.0.1
python-dateutil==1.5
python-ldap==3.1.0
pytz==2013.7
scipy==1.1.0
singledispatch==3.4.0.3
six==1.11.0
tornado==5.1
wrapt==1.10.11
+4
View File
@@ -0,0 +1,4 @@
#!/bin/bash
# Start Gunicorn processes
python3 manage.py runserver
-11
View File
@@ -1,11 +0,0 @@
#!/Users/Esthi/thesis_ek/thesisenv/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from celery.__main__ import _compat_worker
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(_compat_worker())
@@ -4,8 +4,8 @@
import re
import sys
from celery.__main__ import main
from gunicorn.app.wsgiapp import run
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(main())
sys.exit(run())
@@ -4,8 +4,8 @@
import re
import sys
from celery.__main__ import _compat_beat
from gunicorn.app.djangoapp import run
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(_compat_beat())
sys.exit(run())
@@ -4,8 +4,8 @@
import re
import sys
from celery.__main__ import _compat_multi
from gunicorn.app.pasterapp import run
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0])
sys.exit(_compat_multi())
sys.exit(run())
Loaded 100 of 695 files, more files were not shown because too many files have changed in this diff. Show more