Skip to content

Commit

Permalink
Merge pull request #440 from tjcsl/dev
Browse files Browse the repository at this point in the history
Dev merge
  • Loading branch information
jwoglom committed Apr 9, 2016
2 parents 6cc5287 + 82d8cb8 commit d8b927e
Show file tree
Hide file tree
Showing 137 changed files with 577 additions and 405 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,5 @@ __pycache__
__pycache__/*
localdata
config/nginx/ldap_server.conf
localdata/
fixtures/**/*.json
71 changes: 37 additions & 34 deletions Ion.egg-info/SOURCES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ intranet/apps/announcements/forms.py
intranet/apps/announcements/models.py
intranet/apps/announcements/notifications.py
intranet/apps/announcements/serializers.py
intranet/apps/announcements/tests.py
intranet/apps/announcements/urls.py
intranet/apps/announcements/views.py
intranet/apps/announcements/migrations/0001_initial.py
Expand Down Expand Up @@ -370,6 +371,7 @@ intranet/apps/polls/migrations/__init__.py
intranet/apps/preferences/__init__.py
intranet/apps/preferences/fields.py
intranet/apps/preferences/forms.py
intranet/apps/preferences/tests.py
intranet/apps/preferences/urls.py
intranet/apps/preferences/views.py
intranet/apps/preferences/migrations/__init__.py
Expand Down Expand Up @@ -501,37 +503,37 @@ intranet/settings/secret.sample
intranet/settings/travis_secret.py
intranet/static/manifest.json
intranet/static/teacher-guide.pdf
intranet/static/css/about.css
intranet/static/css/announcements.form.css
intranet/static/css/base.css
intranet/static/css/board.css
intranet/static/css/dashboard.css
intranet/static/css/dashboard.widgets.css
intranet/static/css/eighth.admin.css
intranet/static/css/eighth.attendance.css
intranet/static/css/eighth.common.css
intranet/static/css/eighth.profile.css
intranet/static/css/eighth.schedule.css
intranet/static/css/eighth.signup.css
intranet/static/css/emerg.css
intranet/static/css/events.css
intranet/static/css/files.css
intranet/static/css/groups.css
intranet/static/css/login.css
intranet/static/css/mobile.css
intranet/static/css/page_base.css
intranet/static/css/polls.css
intranet/static/css/preferences.css
intranet/static/css/profile.css
intranet/static/css/responsive.core.css
intranet/static/css/responsive.css
intranet/static/css/schedule.css
intranet/static/css/schedule.widget.css
intranet/static/css/search.css
intranet/static/css/signage.base.css
intranet/static/css/signage.touch.css
intranet/static/css/theme.blue.css
intranet/static/css/themes.css
intranet/static/css/about.scss
intranet/static/css/announcements.form.scss
intranet/static/css/base.scss
intranet/static/css/board.scss
intranet/static/css/dashboard.scss
intranet/static/css/dashboard.widgets.scss
intranet/static/css/eighth.admin.scss
intranet/static/css/eighth.attendance.scss
intranet/static/css/eighth.common.scss
intranet/static/css/eighth.profile.scss
intranet/static/css/eighth.schedule.scss
intranet/static/css/eighth.signup.scss
intranet/static/css/emerg.scss
intranet/static/css/events.scss
intranet/static/css/files.scss
intranet/static/css/groups.scss
intranet/static/css/login.scss
intranet/static/css/mobile.scss
intranet/static/css/page_base.scss
intranet/static/css/polls.scss
intranet/static/css/preferences.scss
intranet/static/css/profile.scss
intranet/static/css/responsive.core.scss
intranet/static/css/responsive.scss
intranet/static/css/schedule.scss
intranet/static/css/schedule.widget.scss
intranet/static/css/search.scss
intranet/static/css/signage.base.scss
intranet/static/css/signage.touch.scss
intranet/static/css/theme.blue.scss
intranet/static/css/themes.scss
intranet/static/img/Eighth-Icons.png
intranet/static/img/Eighth-Icons.svg
intranet/static/img/Eighth-Icons@2x.png
Expand Down Expand Up @@ -1105,6 +1107,7 @@ intranet/templates/board/view.html
intranet/templates/dashboard/admin.html
intranet/templates/dashboard/birthdays.html
intranet/templates/dashboard/dashboard.html
intranet/templates/dashboard/gcm_notifications.html
intranet/templates/dashboard/links.html
intranet/templates/dashboard/promo.html
intranet/templates/dashboard/seniors.html
Expand Down Expand Up @@ -1185,7 +1188,6 @@ intranet/templates/events/delete.html
intranet/templates/events/event.html
intranet/templates/events/home.html
intranet/templates/events/join_event.html
intranet/templates/events/not_ready.html
intranet/templates/events/roster.html
intranet/templates/events/scheduled_activity.html
intranet/templates/events/emails/admin_approve.html
Expand All @@ -1195,7 +1197,6 @@ intranet/templates/feedback/email.txt
intranet/templates/feedback/form.html
intranet/templates/files/auth.html
intranet/templates/files/delete.html
intranet/templates/files/devel_message.html
intranet/templates/files/directory.html
intranet/templates/files/home.html
intranet/templates/files/upload.html
Expand Down Expand Up @@ -1273,7 +1274,7 @@ intranet/test/stubs/django/dispatch.pyi
intranet/test/stubs/django/http.pyi
intranet/test/stubs/django/shortcuts.pyi
intranet/test/stubs/django/apps/__init__.pyi
intranet/test/stubs/django/apps/apps.py
intranet/test/stubs/django/apps/apps.pyi
intranet/test/stubs/django/conf/__init__.pyi
intranet/test/stubs/django/conf/settings.pyi
intranet/test/stubs/django/conf/urls.pyi
Expand Down Expand Up @@ -1359,12 +1360,14 @@ intranet/test/stubs/rest_framework/serializers.pyi
intranet/test/stubs/rest_framework/status.pyi
intranet/test/stubs/rest_framework/views.pyi
intranet/test/stubs/simple_history/__init__.pyi
intranet/test/stubs/simple_history/admin.pyi
intranet/test/stubs/simple_history/models.pyi
intranet/test/stubs/unittest/__init__.pyi
intranet/test/stubs/unittest/mock.pyi
intranet/test/stubs/wsgiref/__init__.pyi
intranet/test/stubs/wsgiref/util.pyi
intranet/utils/__init__.py
intranet/utils/date.py
intranet/utils/helpers.py
intranet/utils/helpers.pyi
intranet/utils/ical.py
Expand Down
5 changes: 3 additions & 2 deletions Ion.egg-info/requires.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
bleach==1.4.2
Django==1.9.4
Django==1.9.5
django-cacheops==2.4.3
django-cors-headers==1.1.0
django-debug-toolbar==1.4
Expand All @@ -8,6 +8,7 @@ django-extensions==1.6.1
django-formtools==1.0
django-maintenancemode==0.11.2
django-oauth-toolkit==0.10.0
django-pipeline==1.6.8
django-redis-cache==1.6.5
django-redis-sessions==0.5.0
djangorestframework==3.3.3
Expand All @@ -34,5 +35,5 @@ reportlab==3.3.0
requests==2.9.1
requests-oauthlib==0.6.1
Sphinx==1.4
sphinx-bootstrap-theme==0.4.8
sphinx-bootstrap-theme==0.4.9
Werkzeug==0.11.5
12 changes: 11 additions & 1 deletion config/provision_vagrant.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@ print(json.load(f)['$1'])
f.close()"
}

# Needed for mock ldap server
add-apt-repository -y ppa:webupd8team/java
apt-get update

apt-get -y dist-upgrade
# Timezone
timedatectl set-timezone America/New_York

Expand Down Expand Up @@ -47,6 +49,11 @@ apt-get -y install cups-bsd
apt-get -y install cups-client
echo "ServerName cups2.csl.tjhsst.edu" > /etc/cups/client.conf

# Mock LDAP Server deps
echo debconf shared/accepted-oracle-license-v1-1 select true | debconf-set-selections
echo debconf shared/accepted-oracle-license-v1-1 seen true | debconf-set-selections
apt-get -y install oracle-java7-installer

# Shell
cp intranet/config/bash_completion.d/fab /etc/bash_completion.d/fab
if ! grep "ion_env_setup.sh" /etc/bash.bashrc > /dev/null; then
Expand All @@ -59,6 +66,9 @@ touch .bash_history
apt-get -y install htop
apt-get -y install glances

# CSS
apt-get -y install ruby-sass

# PostsgreSQL
apt-get -y install postgresql
apt-get -y install postgresql-contrib
Expand Down
5 changes: 3 additions & 2 deletions docs/rtd-requirements.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
bleach==1.4.2
Django==1.9.4
Django==1.9.5
django-cacheops==2.4.3
django-cors-headers==1.1.0
django-debug-toolbar==1.4
Expand All @@ -8,6 +8,7 @@ django-extensions==1.6.1
django-formtools==1.0
django-maintenancemode==0.11.2
django-oauth-toolkit==0.10.0
django-pipeline==1.6.8
django-redis-cache==1.6.5
django-redis-sessions==0.5.0
djangorestframework==3.3.3
Expand All @@ -32,6 +33,6 @@ reportlab==3.3.0
requests==2.9.1
requests-oauthlib==0.6.1
Sphinx==1.4
sphinx-bootstrap-theme==0.4.8
sphinx-bootstrap-theme==0.4.9
typing==3.5.0.1
Werkzeug==0.11.5
14 changes: 12 additions & 2 deletions docs/setup/server.rst
Original file line number Diff line number Diff line change
Expand Up @@ -101,16 +101,26 @@ Create the production Ion database.
$ createdb -h localhost ion-dev
---
-----------
Libreoffice
---
-----------

Install Libreoffice to support printing doc/docx files.

.. code-block:: bash
$ emerge app-office/libreoffice
----
SASS
----

Install sass to compile stylesheets.

.. code-block:: bash
$ emerge dev-ruby/sass
-----
Redis
-----
Expand Down
8 changes: 8 additions & 0 deletions docs/sourcedoc/intranet.apps.announcements.rst
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,14 @@ intranet.apps.announcements.serializers module
:undoc-members:
:show-inheritance:

intranet.apps.announcements.tests module
----------------------------------------

.. automodule:: intranet.apps.announcements.tests
:members:
:undoc-members:
:show-inheritance:

intranet.apps.announcements.urls module
---------------------------------------

Expand Down
8 changes: 8 additions & 0 deletions docs/sourcedoc/intranet.apps.preferences.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,14 @@ intranet.apps.preferences.forms module
:undoc-members:
:show-inheritance:

intranet.apps.preferences.tests module
--------------------------------------

.. automodule:: intranet.apps.preferences.tests
:members:
:undoc-members:
:show-inheritance:

intranet.apps.preferences.urls module
-------------------------------------

Expand Down
8 changes: 8 additions & 0 deletions docs/sourcedoc/intranet.utils.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@ intranet.utils package
Submodules
----------

intranet.utils.date module
--------------------------

.. automodule:: intranet.utils.date
:members:
:undoc-members:
:show-inheritance:

intranet.utils.helpers module
-----------------------------

Expand Down
8 changes: 2 additions & 6 deletions intranet/apps/announcements/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
from django.db.models import Manager, Q

from ..users.models import User
from ...utils.date import is_current_year


class AnnouncementManager(Manager):
Expand Down Expand Up @@ -114,12 +115,7 @@ def user_map(self):
@property
def is_this_year(self):
"""Return whether the announcement was created after September 1st of this school year."""
now = datetime.now().date()
ann = self.added.date()
if now.month < 9:
return ((ann.year == now.year and ann.month < 9) or (ann.year == now.year - 1 and ann.month >= 9))
else:
return ann.year == now.year and ann.month >= 9
return is_current_year(self.added.date())

@property
def dashboard_type(self):
Expand Down
43 changes: 43 additions & 0 deletions intranet/apps/announcements/tests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# -*- coding: utf-8 -*-

from django.core.urlresolvers import reverse
from ..users.models import Group, User

from ...test.ion_test import IonTestCase


class AnnouncementTest(IonTestCase):
"""Tests for the announcements module."""

def test_get_announcements(self):
self.login()
response = self.client.get(reverse('view_announcements'))
self.assertEqual(response.status_code, 200)
response = self.client.get(reverse('view_announcement', args=[9001]))
self.assertEqual(response.status_code, 404)

def test_change_announcements(self):
self.login()
group = Group.objects.get_or_create(name="admin_all")[0]
User.get_user(username='awilliam').groups.add(group)

response = self.client.get(reverse('add_announcement'))
self.assertEqual(response.status_code, 200)
response = self.client.get(reverse('admin_approve_announcement', args=[9001]))
self.assertEqual(response.status_code, 404)
response = self.client.get(reverse('admin_request_status'))
self.assertEqual(response.status_code, 200)
response = self.client.get(reverse('approve_announcement', args=[9001]))
self.assertEqual(response.status_code, 404)
response = self.client.get(reverse('announcements_archive'))
self.assertEqual(response.status_code, 200)
response = self.client.get(reverse('delete_announcement', args=[9001]))
self.assertEqual(response.status_code, 404)
response = self.client.post(reverse('hide_announcement'))
self.assertEqual(response.status_code, 404)
response = self.client.get(reverse('modify_announcement', args=[9001]))
self.assertEqual(response.status_code, 404)
response = self.client.get(reverse('request_announcement'))
self.assertEqual(response.status_code, 200)
response = self.client.post(reverse('show_announcement'))
self.assertEqual(response.status_code, 404)
8 changes: 4 additions & 4 deletions intranet/apps/announcements/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -277,7 +277,7 @@ def modify_announcement_view(request, id=None):
"""
if request.method == "POST":
announcement = Announcement.objects.get(id=id)
announcement = get_object_or_404(Announcement, id=id)
form = AnnouncementForm(request.POST, instance=announcement)
if form.is_valid():
obj = form.save()
Expand All @@ -293,7 +293,7 @@ def modify_announcement_view(request, id=None):
else:
messages.error(request, "Error adding announcement")
else:
announcement = Announcement.objects.get(id=id)
announcement = get_object_or_404(Announcement, id=id)
form = AnnouncementForm(instance=announcement)

context = {"form": form, "action": "modify", "id": id, "announcement": announcement}
Expand Down Expand Up @@ -345,7 +345,7 @@ def show_announcement_view(request):
announcement.user_map.users_hidden.remove(request.user)
announcement.user_map.save()
return http.HttpResponse("Unhidden")
return http.Http404()
raise http.Http404
else:
return http.HttpResponseNotAllowed(["POST"], "HTTP 405: METHOD NOT ALLOWED")

Expand All @@ -364,6 +364,6 @@ def hide_announcement_view(request):
announcement.user_map.users_hidden.add(request.user)
announcement.user_map.save()
return http.HttpResponse("Hidden")
return http.Http404()
raise http.Http404
else:
return http.HttpResponseNotAllowed(["POST"], "HTTP 405: METHOD NOT ALLOWED")

0 comments on commit d8b927e

Please sign in to comment.