Commit 3ea9a7719f06dc6107cd52456745980bd5c8b6f9
1 parent
862dbc12
Exists in
master
and in
5 other branches
Modifiying Models and Adding a NotificationMixin Isuee#41
Showing
4 changed files
with
77 additions
and
4 deletions
Show diff stats
@@ -0,0 +1,28 @@ | @@ -0,0 +1,28 @@ | ||
1 | +# -*- coding: utf-8 -*- | ||
2 | +# Generated by Django 1.10 on 2016-09-08 14:08 | ||
3 | +from __future__ import unicode_literals | ||
4 | + | ||
5 | +from django.conf import settings | ||
6 | +from django.db import migrations, models | ||
7 | +import django.db.models.deletion | ||
8 | + | ||
9 | + | ||
10 | +class Migration(migrations.Migration): | ||
11 | + | ||
12 | + dependencies = [ | ||
13 | + migrations.swappable_dependency(settings.AUTH_USER_MODEL), | ||
14 | + ('core', '0002_auto_20160907_0038'), | ||
15 | + ] | ||
16 | + | ||
17 | + operations = [ | ||
18 | + migrations.AddField( | ||
19 | + model_name='notification', | ||
20 | + name='actor', | ||
21 | + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='notification_Performer', to=settings.AUTH_USER_MODEL, verbose_name='Perfomer'), | ||
22 | + ), | ||
23 | + migrations.AlterField( | ||
24 | + model_name='notification', | ||
25 | + name='user', | ||
26 | + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='notification_Actor', to=settings.AUTH_USER_MODEL, verbose_name='User'), | ||
27 | + ), | ||
28 | + ] |
core/mixins.py
1 | from django.conf import settings | 1 | from django.conf import settings |
2 | -from .models import Action, Resource, Action_Resource, Log | 2 | +from .models import Action, Resource, Action_Resource, Log, Notification |
3 | 3 | ||
4 | class LogMixin(object): | 4 | class LogMixin(object): |
5 | log_action = "" | 5 | log_action = "" |
@@ -17,4 +17,26 @@ class LogMixin(object): | @@ -17,4 +17,26 @@ class LogMixin(object): | ||
17 | 17 | ||
18 | log.save() | 18 | log.save() |
19 | 19 | ||
20 | - return super(LogMixin, self).dispatch(request, *args, **kwargs) | ||
21 | \ No newline at end of file | 20 | \ No newline at end of file |
21 | + return super(LogMixin, self).dispatch(request, *args, **kwargs) | ||
22 | + | ||
23 | + | ||
24 | + | ||
25 | +class NotificationMixin(object): | ||
26 | + message = "" | ||
27 | + read = False | ||
28 | + | ||
29 | + def dispatch(self, request, *args, **kwargs): | ||
30 | + action = Action.objects.filter(name = self.log_action) | ||
31 | + resource = Resource.objects.filter(name = self.log_resource) | ||
32 | + | ||
33 | + action_resource = Action_Resource.objects.filter(action = action, resource = resource)[0] | ||
34 | + | ||
35 | + notification = Notification() | ||
36 | + notification.action_resource = action_resource | ||
37 | + notification.user = request.user #We still have to handle the notification to be sent to an amount of Users | ||
38 | + | ||
39 | + notification.read = read | ||
40 | + notification.message = "" | ||
41 | + | ||
42 | + | ||
43 | + |
core/models.py
@@ -52,11 +52,12 @@ class Action_Resource(models.Model): | @@ -52,11 +52,12 @@ class Action_Resource(models.Model): | ||
52 | 52 | ||
53 | class Notification(models.Model): | 53 | class Notification(models.Model): |
54 | message = models.TextField(_('Message')) | 54 | message = models.TextField(_('Message')) |
55 | - user = models.ForeignKey(User, verbose_name = _('Actor')) | 55 | + user = models.ForeignKey(User, related_name = _('%(class)s_Actor'), verbose_name= _('User')) |
56 | read = models.BooleanField(_('Read'), default = False) | 56 | read = models.BooleanField(_('Read'), default = False) |
57 | datetime = models.DateTimeField(_("Date and Time of action"), auto_now_add = True) | 57 | datetime = models.DateTimeField(_("Date and Time of action"), auto_now_add = True) |
58 | action_resource = models.ForeignKey(Action_Resource, verbose_name = _('Action_Resource')) | 58 | action_resource = models.ForeignKey(Action_Resource, verbose_name = _('Action_Resource')) |
59 | - | 59 | + actor = models.ForeignKey(User, related_name = _('%(class)s_Performer'), verbose_name= _('Perfomer'), null = True) |
60 | + | ||
60 | class Meta: | 61 | class Meta: |
61 | verbose_name = _("Notification") | 62 | verbose_name = _("Notification") |
62 | verbose_name_plural = _("Notifications") | 63 | verbose_name_plural = _("Notifications") |
@@ -0,0 +1,22 @@ | @@ -0,0 +1,22 @@ | ||
1 | +# -*- coding: utf-8 -*- | ||
2 | +# Generated by Django 1.10 on 2016-09-08 14:08 | ||
3 | +from __future__ import unicode_literals | ||
4 | + | ||
5 | +import django.core.validators | ||
6 | +from django.db import migrations, models | ||
7 | +import re | ||
8 | + | ||
9 | + | ||
10 | +class Migration(migrations.Migration): | ||
11 | + | ||
12 | + dependencies = [ | ||
13 | + ('users', '0010_auto_20160906_2332'), | ||
14 | + ] | ||
15 | + | ||
16 | + operations = [ | ||
17 | + migrations.AlterField( | ||
18 | + model_name='user', | ||
19 | + name='username', | ||
20 | + field=models.CharField(help_text='A short name that will be used to identify you in the platform and to access it', max_length=35, unique=True, validators=[django.core.validators.RegexValidator(re.compile(b'^[\\w.@+-]+$'), 'Type a valid username. This fields should only contain letters, numbers and the characteres: @/./+/-/_ .', b'invalid')], verbose_name='Login'), | ||
21 | + ), | ||
22 | + ] |