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 @@ |
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 | 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 | 4 | class LogMixin(object): |
5 | 5 | log_action = "" |
... | ... | @@ -17,4 +17,26 @@ class LogMixin(object): |
17 | 17 | |
18 | 18 | log.save() |
19 | 19 | |
20 | - return super(LogMixin, self).dispatch(request, *args, **kwargs) | |
21 | 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 | 52 | |
53 | 53 | class Notification(models.Model): |
54 | 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 | 56 | read = models.BooleanField(_('Read'), default = False) |
57 | 57 | datetime = models.DateTimeField(_("Date and Time of action"), auto_now_add = True) |
58 | 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 | 61 | class Meta: |
61 | 62 | verbose_name = _("Notification") |
62 | 63 | verbose_name_plural = _("Notifications") | ... | ... |
... | ... | @@ -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 | + ] | ... | ... |