Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/hipo/django-sloop
The django package for sloop implementation
https://github.com/hipo/django-sloop
apns django django-rest-framework fcm push-notifications sns
Last synced: 9 days ago
JSON representation
The django package for sloop implementation
- Host: GitHub
- URL: https://github.com/hipo/django-sloop
- Owner: Hipo
- License: apache-2.0
- Created: 2014-12-23T20:11:11.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2022-11-08T08:15:27.000Z (about 2 years ago)
- Last Synced: 2024-10-06T14:18:14.737Z (about 1 month ago)
- Topics: apns, django, django-rest-framework, fcm, push-notifications, sns
- Language: Python
- Size: 2.93 MB
- Stars: 16
- Watchers: 23
- Forks: 4
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![Sloop](/docs/img/splash.jpg?raw=true "Django-Sloop")
This package contains some tools that will ease the implementation of push notifications using AWS SNS and other backends into django projects.
# Django-Sloop
## Installation
1. Install the package via Github or PIP (pip install django-sloop)
2. Add **django_sloop** to the INSTALLED_APPS list in the settings file.
3. Extend the django_sloop.models.AbstractSNSDevice class and create your own push token device model.
```python
# models.pyfrom django_sloop.models import AbstractSNSDevice
class Device(AbstractSNSDevice):
pass
# (Optional) if you need to override Meta.
class Meta(AbstractSNSDevice.Meta):
pass
```4. Make sure that you fill necessary information at the settings file:
```python
# settings.pyDJANGO_SLOOP_SETTINGS = {
"AWS_REGION_NAME": "",
"AWS_ACCESS_KEY_ID": "",
"AWS_SECRET_ACCESS_KEY": "",
"SNS_IOS_APPLICATION_ARN": "test_ios_arn",
"SNS_IOS_SANDBOX_ENABLED": False,
"SNS_ANDROID_APPLICATION_ARN": "test_android_arn",
"LOG_SENT_MESSAGES": False, # False by default.
"DEFAULT_SOUND": "",
"DEVICE_MODEL": "module_name.Device",
}
```You cannot change the DEVICE_MODEL setting during the lifetime of a project (i.e. once you have made and migrated models that depend on it) without serious effort. The model it refers to must be available in the first migration of
the app that it lives in.5. Create migrations for newly created Device model and migrate.
**Note:** django_sloop's migrations must run after your Device is created. If you run into a problem while running migrations add following to the your migration file where the Device is created.
```
run_before = [
('django_sloop', '0001_initial'),
]
```6. Add django_sloop.models.PushNotificationMixin to your User model.
```python
class User(PushNotificationMixin, ...):
passuser.send_push_notification_async(message="Sample push notification.")
```
7. Add django_sloop.admin.SloopAdminMixin to your UserAdmin to enable sending push messages to users from Django admin panel.
```python
# admin.pyfrom django_sloop.admin import SloopAdminMixin
from django.contrib import adminclass UserAdmin(SloopAdminMixin, admin.ModelAdmin):
actions = ("send_push_notification", )
```8. Add django rest framework urls to create and delete device.
```python
# urls.py
from django.urls import path
from django.urls import includeurlpatterns = [
# ...
path('api/devices/', include('django_sloop.urls')),
# ...
]
```Done!