From 461aaa4dab427c761dcc0ea3bec4581fdc48bfe5 Mon Sep 17 00:00:00 2001 From: HanseGucker <hansegucker@gmail.com> Date: Fri, 22 Dec 2017 13:03:21 +0100 Subject: [PATCH] Add dashboard with last activities (look at README) [ADD UNVERSIONED FILES, MISTAKE] --- schoolapps/dashboard/__init__.py | 0 schoolapps/dashboard/admin.py | 6 +++++ schoolapps/dashboard/apps.py | 6 +++++ .../dashboard/migrations/0001_initial.py | 22 ++++++++++++++++++ .../migrations/0002_activity_user.py | 21 +++++++++++++++++ .../migrations/0003_activity_created_at.py | 18 +++++++++++++++ schoolapps/dashboard/migrations/__init__.py | 0 schoolapps/dashboard/models.py | 23 +++++++++++++++++++ schoolapps/dashboard/tests.py | 3 +++ schoolapps/dashboard/views.py | 23 +++++++++++++++++++ 10 files changed, 122 insertions(+) create mode 100644 schoolapps/dashboard/__init__.py create mode 100644 schoolapps/dashboard/admin.py create mode 100644 schoolapps/dashboard/apps.py create mode 100644 schoolapps/dashboard/migrations/0001_initial.py create mode 100644 schoolapps/dashboard/migrations/0002_activity_user.py create mode 100644 schoolapps/dashboard/migrations/0003_activity_created_at.py create mode 100644 schoolapps/dashboard/migrations/__init__.py create mode 100644 schoolapps/dashboard/models.py create mode 100644 schoolapps/dashboard/tests.py create mode 100644 schoolapps/dashboard/views.py diff --git a/schoolapps/dashboard/__init__.py b/schoolapps/dashboard/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/schoolapps/dashboard/admin.py b/schoolapps/dashboard/admin.py new file mode 100644 index 000000000..fc4ef21f4 --- /dev/null +++ b/schoolapps/dashboard/admin.py @@ -0,0 +1,6 @@ +from django.contrib import admin +from .models import Activity + +# Register your models here. + +admin.site.register(Activity) diff --git a/schoolapps/dashboard/apps.py b/schoolapps/dashboard/apps.py new file mode 100644 index 000000000..bc6084702 --- /dev/null +++ b/schoolapps/dashboard/apps.py @@ -0,0 +1,6 @@ +from django.apps import AppConfig + + +class DashboardConfig(AppConfig): + name = 'dashboard' + verbose_name = "Dashboard" diff --git a/schoolapps/dashboard/migrations/0001_initial.py b/schoolapps/dashboard/migrations/0001_initial.py new file mode 100644 index 000000000..2b10c48c7 --- /dev/null +++ b/schoolapps/dashboard/migrations/0001_initial.py @@ -0,0 +1,22 @@ +# Generated by Django 2.0 on 2017-12-22 11:22 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Activity', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('title', models.CharField(max_length=200)), + ('description', models.TextField(max_length=500)), + ('app', models.CharField(max_length=100)), + ], + ), + ] diff --git a/schoolapps/dashboard/migrations/0002_activity_user.py b/schoolapps/dashboard/migrations/0002_activity_user.py new file mode 100644 index 000000000..18f9a636d --- /dev/null +++ b/schoolapps/dashboard/migrations/0002_activity_user.py @@ -0,0 +1,21 @@ +# Generated by Django 2.0 on 2017-12-22 11:33 + +from django.conf import settings +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + dependencies = [ + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('dashboard', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='activity', + name='user', + field=models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, + to=settings.AUTH_USER_MODEL), + ), + ] diff --git a/schoolapps/dashboard/migrations/0003_activity_created_at.py b/schoolapps/dashboard/migrations/0003_activity_created_at.py new file mode 100644 index 000000000..c0ee7e6c9 --- /dev/null +++ b/schoolapps/dashboard/migrations/0003_activity_created_at.py @@ -0,0 +1,18 @@ +# Generated by Django 2.0 on 2017-12-22 11:36 + +from django.db import migrations, models +import django.utils.timezone + + +class Migration(migrations.Migration): + dependencies = [ + ('dashboard', '0002_activity_user'), + ] + + operations = [ + migrations.AddField( + model_name='activity', + name='created_at', + field=models.DateTimeField(default=django.utils.timezone.now), + ), + ] diff --git a/schoolapps/dashboard/migrations/__init__.py b/schoolapps/dashboard/migrations/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/schoolapps/dashboard/models.py b/schoolapps/dashboard/models.py new file mode 100644 index 000000000..06a491be9 --- /dev/null +++ b/schoolapps/dashboard/models.py @@ -0,0 +1,23 @@ +from django.db import models +from django.contrib.auth.models import User +from django.utils import timezone + + +def get_default_user(): + User.objects.get_or_create(username='nouser') + + +# Create your models here. + +class Activity(models.Model): + user = models.ForeignKey(User, models.CASCADE, default=get_default_user()) + + title = models.CharField(max_length=200) + description = models.TextField(max_length=500) + + app = models.CharField(max_length=100) + + created_at = models.DateTimeField(default=timezone.now) + + def __str__(self): + return self.title diff --git a/schoolapps/dashboard/tests.py b/schoolapps/dashboard/tests.py new file mode 100644 index 000000000..7ce503c2d --- /dev/null +++ b/schoolapps/dashboard/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/schoolapps/dashboard/views.py b/schoolapps/dashboard/views.py new file mode 100644 index 000000000..0622ce440 --- /dev/null +++ b/schoolapps/dashboard/views.py @@ -0,0 +1,23 @@ +from django.contrib.auth.decorators import login_required +from django.shortcuts import render +from .models import Activity +from .apps import DashboardConfig + + +# Create your views here. + +@login_required +def index(request): + # Register visit + act = Activity(title="Dashboard aufgerufen", description="Sie haben das Dashboard aufgerufen.", + app=DashboardConfig.verbose_name, user=request.user) + act.save() + + # Load activities + activities = Activity.objects.filter(user=request.user).order_by('-created_at') + + context = { + 'activities': activities + } + + return render(request, 'index.html', context) -- GitLab