Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions BaseDRF/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'notification.apps.NotificationConfig'
]

MIDDLEWARE = [
Expand Down
Empty file added notification/__init__.py
Empty file.
4 changes: 4 additions & 0 deletions notification/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from django.contrib import admin
from notification.models import *
admin.site.register(UserNotification)
admin.site.register(Notification)
7 changes: 7 additions & 0 deletions notification/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from django.apps import AppConfig


class NotificationConfig(AppConfig):
name = 'notification'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

def ready(self):
from . import signals

def ready(self):
from . import signals
Empty file.
18 changes: 18 additions & 0 deletions notification/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
from django.db import models
from django.contrib.auth.models import User
class UserNotification(models.Model):
user = models.OneToOneField(to=User,on_delete=models.CASCADE)

class Notification(models.Model):
user_notification = models.ForeignKey(to=UserNotification,on_delete=models.CASCADE)
TYPE_SMS = 'sms'
TYPE_EMAIL = 'email'
TYPE_IN_APP = 'In app'

TYPES = (
(TYPE_SMS, 'sms'),
(TYPE_EMAIL, 'email'),
(TYPE_IN_APP, 'In app'),
)

notif_type = models.CharField(max_length=10,choices=TYPES)
15 changes: 15 additions & 0 deletions notification/serializers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
from django.db import models
from rest_framework import fields,serializers


class NotificationInputsSerializer(serializers.Serializer):
TYPE_SMS = 'sms'
TYPE_EMAIL = 'email'
TYPE_IN_APP = 'In app'

TYPES = (
(TYPE_SMS, 'sms'),
(TYPE_EMAIL, 'email'),
(TYPE_IN_APP, 'In app'),
)
notif_type = fields.ChoiceField(choices=TYPES)
10 changes: 10 additions & 0 deletions notification/signals.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
from django.dispatch import receiver
from django.db.models.signals import post_save
from django.contrib.auth.models import User
from notification.models import UserNotification


@receiver(post_save, sender=User)
def auto_create_user_notification(sender, instance, created, **kwargs):
if created:
UserNotification.objects.create(user=instance)
3 changes: 3 additions & 0 deletions notification/tests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.test import TestCase

# Create your tests here.
10 changes: 10 additions & 0 deletions notification/views.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
from django.contrib.auth.models import Permission
from django.shortcuts import render
from rest_framework import serializers
from rest_framework.generics import CreateAPIView
from .serializers import NotificationInputsSerializer
class Notification(CreateAPIView):
serializer_class = NotificationInputsSerializer
# Permission_classes = ?
def perform_create(self, serializer):
return super().perform_create(serializer)