Skip to content

Commit b9920df

Browse files
Merge pull request #7 from kehindeadewusi/django-2.0
Django 2.0
2 parents c92c3d5 + fd358cf commit b9920df

File tree

11 files changed

+106
-27
lines changed

11 files changed

+106
-27
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,5 @@
11
*.pyc
2+
.idea
3+
.vscode/
4+
5+

announcements/management.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
from django.db.models import get_models, signals
2-
1+
from django.db.models import signals
32

43
try:
54
from notification import models as notification
@@ -11,6 +10,6 @@ def create_notice_types(app, created_models, verbosity, **kwargs):
1110
"""
1211
notification.create_notice_type("announcement", "Announcement", "you have received an announcement")
1312

14-
signals.post_syncdb.connect(create_notice_types, sender=notification)
13+
signals.post_migrate.connect(create_notice_types, sender=notification)
1514
except ImportError:
16-
print "Skipping creation of NoticeTypes as notification app not found"
15+
print("Skipping creation of NoticeTypes as notification app not found")
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Generated by Django 2.1 on 2018-09-11 22:44
2+
3+
import datetime
4+
from django.conf import settings
5+
from django.db import migrations, models
6+
import django.db.models.deletion
7+
8+
9+
class Migration(migrations.Migration):
10+
11+
initial = True
12+
13+
dependencies = [
14+
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
15+
]
16+
17+
operations = [
18+
migrations.CreateModel(
19+
name='Announcement',
20+
fields=[
21+
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
22+
('title', models.CharField(max_length=50, verbose_name='title')),
23+
('content', models.TextField(verbose_name='content')),
24+
('creation_date', models.DateTimeField(default=datetime.datetime.now, verbose_name='creation_date')),
25+
('site_wide', models.BooleanField(default=False, verbose_name='site wide')),
26+
('members_only', models.BooleanField(default=False, verbose_name='members only')),
27+
('creator', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='creator')),
28+
],
29+
options={
30+
'verbose_name': 'announcement',
31+
'verbose_name_plural': 'announcements',
32+
},
33+
),
34+
]

announcements/migrations/__init__.py

Whitespace-only changes.

announcements/models.py

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,9 @@
22

33
from django.db import models
44
from django.conf import settings
5-
from django.contrib.auth.models import User
6-
from django.core.urlresolvers import reverse
5+
from django.urls import reverse
76
from django.utils.translation import ugettext_lazy as _
87

9-
try:
10-
set
11-
except NameError:
12-
from sets import Set as set # Python 2.3 fallback
13-
148

159
class AnnouncementManager(models.Manager):
1610
"""
@@ -48,7 +42,7 @@ class Announcement(models.Model):
4842
"""
4943
title = models.CharField(_("title"), max_length=50)
5044
content = models.TextField(_("content"))
51-
creator = models.ForeignKey(User, verbose_name=_("creator"))
45+
creator = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=_("creator"), on_delete=models.CASCADE)
5246
creation_date = models.DateTimeField(_("creation_date"), default=datetime.now)
5347
site_wide = models.BooleanField(_("site wide"), default=False)
5448
members_only = models.BooleanField(_("members only"), default=False)
@@ -57,9 +51,8 @@ class Announcement(models.Model):
5751

5852
def get_absolute_url(self):
5953
return ("announcement_detail", [str(self.pk)])
60-
get_absolute_url = models.permalink(get_absolute_url)
6154

62-
def __unicode__(self):
55+
def __str__(self):
6356
return self.title
6457

6558
class Meta:

announcements/urls.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
from django.conf.urls.defaults import *
2-
from django.views.generic import list_detail
1+
from django.urls import path
2+
from django.views.generic.list import ListView
33

44
from announcements.models import Announcement
55
from announcements.views import *
@@ -9,10 +9,10 @@
99
"queryset": Announcement.objects.all(),
1010
}
1111

12-
urlpatterns = patterns("",
13-
url(r"^(?P<object_id>\d+)/$", list_detail.object_detail,
12+
urlpatterns = [
13+
path('<int:object_id>/', ListView.as_view(),
1414
announcement_detail_info, name="announcement_detail"),
15-
url(r"^(?P<object_id>\d+)/hide/$", announcement_hide,
15+
path('<int:object_id>/hide/', announcement_hide,
1616
name="announcement_hide"),
17-
url(r"^$", announcement_list, name="announcement_home"),
18-
)
17+
path('', announcement_list, name="announcement_home"),
18+
]

announcements/views.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
11
from django.http import HttpResponseRedirect
2-
from django.views.generic import list_detail
2+
from django.views.generic.list import ListView
33
from django.shortcuts import get_object_or_404
44

55
from announcements.models import Announcement, current_announcements_for_request
66

7-
try:
8-
set
9-
except NameError:
10-
from sets import Set as set # Python 2.3 fallback
117

128

139
def announcement_list(request):
@@ -17,7 +13,7 @@ def announcement_list(request):
1713
announcements.
1814
"""
1915
queryset = current_announcements_for_request(request)
20-
return list_detail.object_list(request, **{
16+
return ListView.as_view(request, **{
2117
"queryset": queryset,
2218
"allow_empty": True,
2319
})
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
Metadata-Version: 1.1
2+
Name: django-announcements
3+
Version: 0.1.2
4+
Summary: Announcements for your Django powered website.
5+
Home-page: http://code.google.com/p/django-announcements
6+
Author: Brian Rosner
7+
Author-email: [email protected]
8+
License: MIT
9+
Description: Some sites need the ability to broadcast an announcement to all of their
10+
users. django-announcements was created precisely for this reason. How you
11+
present the announcement is up to you as the site-developer. When working with
12+
announcements that are presented on the website one feature is that they are
13+
only viewed once. A session variable will hold which announcements an user has
14+
viewed and exclude that from their display. announcements supports two
15+
different types of filtering of announcements:
16+
17+
* site-wide (this can be presented to anonymous users)
18+
* non site-wide (these can be used a strictly a mailing if so desired)
19+
* members only (announcements are filtered based on the value of
20+
``request.user``)
21+
22+
Platform: UNKNOWN
23+
Classifier: Development Status :: 3 - Alpha
24+
Classifier: Environment :: Web Environment
25+
Classifier: Intended Audience :: Developers
26+
Classifier: License :: OSI Approved :: MIT License
27+
Classifier: Operating System :: OS Independent
28+
Classifier: Programming Language :: Python
29+
Classifier: Framework :: Django
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
AUTHORS
2+
MANIFEST.in
3+
README
4+
announcements/__init__.py
5+
announcements/admin.py
6+
announcements/context_processors.py
7+
announcements/feeds.py
8+
announcements/forms.py
9+
announcements/management.py
10+
announcements/models.py
11+
announcements/tests.py
12+
announcements/urls.py
13+
announcements/views.py
14+
announcements/templates/notification/announcement/full.txt
15+
announcements/templatetags/__init__.py
16+
announcements/templatetags/announcement_tags.py
17+
django_announcements.egg-info/PKG-INFO
18+
django_announcements.egg-info/SOURCES.txt
19+
django_announcements.egg-info/dependency_links.txt
20+
django_announcements.egg-info/top_level.txt
21+
docs/index.txt
22+
docs/usage.txt
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
announcements

0 commit comments

Comments
 (0)