diff --git a/schoolapps/dashboard/__init__.py b/schoolapps/dashboard/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/schoolapps/dashboard/admin.py b/schoolapps/dashboard/admin.py new file mode 100644 index 0000000000000000000000000000000000000000..fc4ef21f431cbe731885eaabebf1a1f4bc546e27 --- /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 0000000000000000000000000000000000000000..bc6084702acf8de9b788588f5813d689a8bd82bf --- /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 0000000000000000000000000000000000000000..2b10c48c73f9b9f135de9069b3dc96d0b4973b12 --- /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 0000000000000000000000000000000000000000..18f9a636db9a88e85a959c28fda5dfb9cd2f5727 --- /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 0000000000000000000000000000000000000000..c0ee7e6c90df5e3be13a7f09caf6cf21303b65f4 --- /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 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/schoolapps/dashboard/models.py b/schoolapps/dashboard/models.py new file mode 100644 index 0000000000000000000000000000000000000000..06a491be9135cf1d2cd151b6423a171dda9c65d0 --- /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 0000000000000000000000000000000000000000..7ce503c2dd97ba78597f6ff6e4393132753573f6 --- /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 0000000000000000000000000000000000000000..0622ce4406239e3cd6071fd7ced063c33304986e --- /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)