Merge branch 'develop' into 'master'

Merge develop to master



See merge request !9
This commit is contained in:
Jan Tuomi
2017-03-01 15:57:06 +02:00
18 changed files with 290 additions and 102 deletions
+1 -1
View File
@@ -12,5 +12,5 @@ webapp/migrations/*
.idea/
logs/
/static/
node_modules/
/media/
node_modules/
+7
View File
@@ -0,0 +1,7 @@
FROM python:3.5
ENV PYTHONBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
+15
View File
@@ -0,0 +1,15 @@
version: '2'
services:
db:
image: mariadb
environment:
- MYSQL_ROOT_PASSWORD=toor
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
+5
View File
@@ -0,0 +1,5 @@
.logout-button {
float: right;
margin-top: 10px;
margin-right: 30px;
}
+9 -1
View File
@@ -4,14 +4,16 @@ from django.utils import timezone
from datetime import datetime
from django.contrib.contenttypes.fields import GenericForeignKey
from django.contrib.contenttypes.models import ContentType
from django.utils.translation import ugettext as _
class InfoItem(models.Model):
class __meta__:
abstract = True
name = models.CharField(max_length=255)
expire_date = models.DateTimeField(blank=True, null=True) # None means never expiring item
display_name = "Default item"
def get_template_url(self):
raise NotImplementedError("inheriting classes must implement get_template_url")
@@ -69,6 +71,7 @@ class InfoItem(models.Model):
class ABBInfoItem(InfoItem):
display_name = _("ABB jobs")
def get_template_url(self):
return "/static/html/abb.html"
@@ -77,6 +80,7 @@ class ABBInfoItem(InfoItem):
return "/static/html/abb_create.html"
class CoffeeInfoItem(InfoItem):
display_name = _("Coffee display")
def get_template_url(self):
return "/static/html/coffee.html"
@@ -85,6 +89,7 @@ class CoffeeInfoItem(InfoItem):
return "/static/html/coffee_create.html"
class SossoInfoItem(InfoItem):
display_name = _("Sössö articles")
def get_template_url(self):
return "/static/html/sosso.html"
@@ -94,6 +99,7 @@ class SossoInfoItem(InfoItem):
class ImageInfoItem(InfoItem):
display_name = _("Image upload")
img = models.ImageField(upload_to="infoimages/")
def get_template_url(self):
@@ -111,6 +117,7 @@ class ImageInfoItem(InfoItem):
class HslInfoItem(InfoItem):
display_name = _("HSL timetables")
def get_template_url(self):
return "/static/html/hsl.html"
@@ -120,6 +127,7 @@ class HslInfoItem(InfoItem):
class ExternalImageInfoItem(InfoItem):
display_name = _("External image")
url = models.TextField()
def get_template_url(self):
+16 -5
View File
@@ -12,12 +12,23 @@
height:100%;
}
.img-container{
width: 100vw;
height: 100vh;
position: relative;
overflow: hidden;
}
.fit {
width: auto;
min-height: 100%;
display: block;
margin-left: auto;
margin-right: auto;
position:absolute;
top: 50%;
left: 50%;
width: 100%;
min-height: 100%;
height: auto;
margin: auto;
-webkit-transform: translate(-50%,-50%);
-ms-transform: translate(-50%,-50%);
transform: translate(-50%,-50%);
}
.swap-animation.ng-enter, .swap-animation.ng-leave {
+4 -1
View File
@@ -1 +1,4 @@
<img ng-src="{{ img }}" class="fit"/>
<div class="img-container">
<img ng-src="{{ img }}" class="fit"/>
</div>
+3 -1
View File
@@ -1,5 +1,6 @@
{% load i18n %}
{% load static %}
{% load staticfiles %}
<!DOCTYPE html>
<html ng-app="infoAdmin">
<head>
@@ -12,10 +13,11 @@
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"></link>
<script src="/static/js/ng-file-upload-bower-12.2.11/ng-file-upload-all.js"></script>
<script src="/static/js/infoadmin_controllers.js"></script>
<link rel="stylesheet" href="{% static "css/base.css" %}"></link>
</head>
<body>
<div id="header" class="row">
<div class="col-xs-1 col-xs-offset-11 col-sm-1 col-lg-1">
<div class="logout-button">
<form action="/logout" method="post"> {% csrf_token %}
<input type="Submit" value="{% trans "Log out" %}" name="Logout" class="btn btn-danger"/>
</form>
+1 -1
View File
@@ -120,7 +120,7 @@ def info_types(request, *args, **kwargs):
classes = InfoItem.get_subclasses()
for c in classes:
types.append({
"name": c.__name__,
"name": c.display_name,
"create_template_url": c.get_create_template_url(),
})
return HttpResponse(json.dumps(types))
Binary file not shown.
+63 -39
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-02-12 00:46+0200\n"
"POT-Creation-Date: 2017-02-22 22:36+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,101 +17,125 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: infoscreen/templates/infoscreen_admin.html:20
#: members/templates/members_base.html:67
#: infoscreen/models.py:74
msgid "ABB jobs"
msgstr "ABB jobs"
#: infoscreen/models.py:83
msgid "Coffee display"
msgstr "Coffee display"
#: infoscreen/models.py:92
msgid "Sössö articles"
msgstr "Sössö articles"
#: infoscreen/models.py:102
msgid "Image upload"
msgstr "Image upload"
#: infoscreen/models.py:120
msgid "HSL timetables"
msgstr "HSL timetables"
#: infoscreen/models.py:130
msgid "External image"
msgstr "External image"
#: infoscreen/templates/infoscreen_admin.html:22
#: members/templates/members_base.html:60
msgid "Log out"
msgstr ""
#: infoscreen/templates/infoscreen_admin.html:27
#: infoscreen/templates/infoscreen_admin.html:29
msgid "Infoscreen Admin Pane"
msgstr ""
#: infoscreen/templates/infoscreen_admin.html:32
#: infoscreen/templates/infoscreen_admin.html:34
msgid "Info items"
msgstr ""
#: infoscreen/templates/infoscreen_admin.html:33
#: infoscreen/templates/infoscreen_admin.html:35
msgid "Infoitems available for rotations"
msgstr ""
#: infoscreen/templates/infoscreen_admin.html:36
#: infoscreen/templates/infoscreen_admin.html:38
msgid "Item"
msgstr ""
#: infoscreen/templates/infoscreen_admin.html:37
#: infoscreen/templates/infoscreen_admin.html:39
msgid "Set duration"
msgstr ""
#: infoscreen/templates/infoscreen_admin.html:38
#: infoscreen/templates/infoscreen_admin.html:40
msgid "Add to rotation"
msgstr ""
#: infoscreen/templates/infoscreen_admin.html:39
#: infoscreen/templates/infoscreen_admin.html:45
#: infoscreen/templates/infoscreen_admin.html:72
#: infoscreen/templates/infoscreen_admin.html:79
#: infoscreen/templates/infoscreen_admin.html:96
#: infoscreen/templates/infoscreen_admin.html:100
#: infoscreen/templates/infoscreen_admin.html:41
#: infoscreen/templates/infoscreen_admin.html:47
#: infoscreen/templates/infoscreen_admin.html:74
#: infoscreen/templates/infoscreen_admin.html:81
#: infoscreen/templates/infoscreen_admin.html:98
#: infoscreen/templates/infoscreen_admin.html:102
#: members/templates/member_list.html:63
msgid "Delete"
msgstr ""
#: infoscreen/templates/infoscreen_admin.html:44
#: infoscreen/templates/infoscreen_admin.html:46
msgid "Add"
msgstr ""
#: infoscreen/templates/infoscreen_admin.html:48
#: infoscreen/templates/infoscreen_admin.html:50
msgid "Create new item"
msgstr ""
#: infoscreen/templates/infoscreen_admin.html:51
#: infoscreen/templates/infoscreen_admin.html:53
msgid "Item type"
msgstr ""
#: infoscreen/templates/infoscreen_admin.html:62
#: infoscreen/templates/infoscreen_admin.html:64
msgid "Rotations"
msgstr ""
#: infoscreen/templates/infoscreen_admin.html:64
#: infoscreen/templates/infoscreen_admin.html:66
msgid "Select rotation to edit"
msgstr ""
#: infoscreen/templates/infoscreen_admin.html:68
#: infoscreen/templates/infoscreen_admin.html:90
#: infoscreen/templates/infoscreen_admin.html:70
#: infoscreen/templates/infoscreen_admin.html:92
msgid "Rotation"
msgstr ""
#: infoscreen/templates/infoscreen_admin.html:69
#: infoscreen/templates/infoscreen_admin.html:71
msgid "id"
msgstr ""
#: infoscreen/templates/infoscreen_admin.html:70
#: infoscreen/templates/infoscreen_admin.html:77
#: infoscreen/templates/infoscreen_admin.html:72
#: infoscreen/templates/infoscreen_admin.html:79
msgid "Select"
msgstr ""
#: infoscreen/templates/infoscreen_admin.html:71
#: infoscreen/templates/infoscreen_admin.html:78
#: infoscreen/templates/infoscreen_admin.html:73
#: infoscreen/templates/infoscreen_admin.html:80
msgid "Preview"
msgstr ""
#: infoscreen/templates/infoscreen_admin.html:82
#: infoscreen/templates/infoscreen_admin.html:84
msgid "Name"
msgstr ""
#: infoscreen/templates/infoscreen_admin.html:83
#: infoscreen/templates/infoscreen_admin.html:85
msgid "Create new"
msgstr ""
#: infoscreen/templates/infoscreen_admin.html:91
#: infoscreen/templates/infoscreen_admin.html:93
msgid "Instances in currently selected rotation"
msgstr ""
#: infoscreen/templates/infoscreen_admin.html:94
#: infoscreen/templates/infoscreen_admin.html:96
msgid "Instance"
msgstr ""
#: infoscreen/templates/infoscreen_admin.html:95
#: infoscreen/templates/infoscreen_admin.html:97
msgid "Duration"
msgstr ""
@@ -199,31 +223,31 @@ msgstr ""
msgid "Are you sure?"
msgstr ""
#: members/templates/members_base.html:49
#: members/templates/members_base.html:50
msgid "Member list"
msgstr ""
#: members/templates/members_base.html:50
#: members/templates/members_base.html:51
msgid "Add member"
msgstr ""
#: members/templates/members_base.html:51
#: members/templates/members_base.html:52
msgid "Add multiple"
msgstr ""
#: members/templates/members_base.html:52
#: members/templates/members_base.html:53
msgid "Member application"
msgstr ""
#: members/templates/members_base.html:62
#: members/templates/members_base.html:69
msgid "Member register of SIK ry"
msgstr ""
#: sikweb/settings-sample.py:146 sikweb/settings.py:146
#: sikweb/settings-sample.py:162 sikweb/settings.py:161
msgid "English"
msgstr ""
#: sikweb/settings-sample.py:147 sikweb/settings.py:147
#: sikweb/settings-sample.py:163 sikweb/settings.py:162
msgid "Finnish"
msgstr ""
Binary file not shown.
+63 -39
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-02-12 00:46+0200\n"
"POT-Creation-Date: 2017-02-22 22:36+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,101 +18,125 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: infoscreen/templates/infoscreen_admin.html:20
#: members/templates/members_base.html:67
#: infoscreen/models.py:74
msgid "ABB jobs"
msgstr "ABB-työpaikat"
#: infoscreen/models.py:83
msgid "Coffee display"
msgstr "Kahvinäyttö"
#: infoscreen/models.py:92
msgid "Sössö articles"
msgstr "Sössön artikkelit"
#: infoscreen/models.py:102
msgid "Image upload"
msgstr "Kuvan lataus"
#: infoscreen/models.py:120
msgid "HSL timetables"
msgstr "HSL-aikataulut"
#: infoscreen/models.py:130
msgid "External image"
msgstr "Ulkoinen kuva"
#: infoscreen/templates/infoscreen_admin.html:22
#: members/templates/members_base.html:60
msgid "Log out"
msgstr "Kirjaudu ulos"
#: infoscreen/templates/infoscreen_admin.html:27
#: infoscreen/templates/infoscreen_admin.html:29
msgid "Infoscreen Admin Pane"
msgstr "Infonäyttöjen hallintapaneeli"
#: infoscreen/templates/infoscreen_admin.html:32
#: infoscreen/templates/infoscreen_admin.html:34
msgid "Info items"
msgstr "Diat"
#: infoscreen/templates/infoscreen_admin.html:33
#: infoscreen/templates/infoscreen_admin.html:35
msgid "Infoitems available for rotations"
msgstr "Rotaatioon lisättävät diat"
#: infoscreen/templates/infoscreen_admin.html:36
#: infoscreen/templates/infoscreen_admin.html:38
msgid "Item"
msgstr "Dia"
#: infoscreen/templates/infoscreen_admin.html:37
#: infoscreen/templates/infoscreen_admin.html:39
msgid "Set duration"
msgstr "Aseta kesto"
#: infoscreen/templates/infoscreen_admin.html:38
#: infoscreen/templates/infoscreen_admin.html:40
msgid "Add to rotation"
msgstr "Lisää rotaatioon"
#: infoscreen/templates/infoscreen_admin.html:39
#: infoscreen/templates/infoscreen_admin.html:45
#: infoscreen/templates/infoscreen_admin.html:72
#: infoscreen/templates/infoscreen_admin.html:79
#: infoscreen/templates/infoscreen_admin.html:96
#: infoscreen/templates/infoscreen_admin.html:100
#: infoscreen/templates/infoscreen_admin.html:41
#: infoscreen/templates/infoscreen_admin.html:47
#: infoscreen/templates/infoscreen_admin.html:74
#: infoscreen/templates/infoscreen_admin.html:81
#: infoscreen/templates/infoscreen_admin.html:98
#: infoscreen/templates/infoscreen_admin.html:102
#: members/templates/member_list.html:63
msgid "Delete"
msgstr "Poista"
#: infoscreen/templates/infoscreen_admin.html:44
#: infoscreen/templates/infoscreen_admin.html:46
msgid "Add"
msgstr "Lisää"
#: infoscreen/templates/infoscreen_admin.html:48
#: infoscreen/templates/infoscreen_admin.html:50
msgid "Create new item"
msgstr "Luo uusi dia"
#: infoscreen/templates/infoscreen_admin.html:51
#: infoscreen/templates/infoscreen_admin.html:53
msgid "Item type"
msgstr "Diatyyppi"
#: infoscreen/templates/infoscreen_admin.html:62
#: infoscreen/templates/infoscreen_admin.html:64
msgid "Rotations"
msgstr "Rotaatiot"
#: infoscreen/templates/infoscreen_admin.html:64
#: infoscreen/templates/infoscreen_admin.html:66
msgid "Select rotation to edit"
msgstr "Valitse muokattava rotaatio"
#: infoscreen/templates/infoscreen_admin.html:68
#: infoscreen/templates/infoscreen_admin.html:90
#: infoscreen/templates/infoscreen_admin.html:70
#: infoscreen/templates/infoscreen_admin.html:92
msgid "Rotation"
msgstr "Rotaatio"
#: infoscreen/templates/infoscreen_admin.html:69
#: infoscreen/templates/infoscreen_admin.html:71
msgid "id"
msgstr "id"
#: infoscreen/templates/infoscreen_admin.html:70
#: infoscreen/templates/infoscreen_admin.html:77
#: infoscreen/templates/infoscreen_admin.html:72
#: infoscreen/templates/infoscreen_admin.html:79
msgid "Select"
msgstr "Valitse"
#: infoscreen/templates/infoscreen_admin.html:71
#: infoscreen/templates/infoscreen_admin.html:78
#: infoscreen/templates/infoscreen_admin.html:73
#: infoscreen/templates/infoscreen_admin.html:80
msgid "Preview"
msgstr "Esikatsele"
#: infoscreen/templates/infoscreen_admin.html:82
#: infoscreen/templates/infoscreen_admin.html:84
msgid "Name"
msgstr "Nimi"
#: infoscreen/templates/infoscreen_admin.html:83
#: infoscreen/templates/infoscreen_admin.html:85
msgid "Create new"
msgstr "Luo uusi"
#: infoscreen/templates/infoscreen_admin.html:91
#: infoscreen/templates/infoscreen_admin.html:93
msgid "Instances in currently selected rotation"
msgstr "Nykyisen rotaation diat"
#: infoscreen/templates/infoscreen_admin.html:94
#: infoscreen/templates/infoscreen_admin.html:96
msgid "Instance"
msgstr "Dia"
#: infoscreen/templates/infoscreen_admin.html:95
#: infoscreen/templates/infoscreen_admin.html:97
msgid "Duration"
msgstr "Kesto"
@@ -200,31 +224,31 @@ msgstr "Muokkaa"
msgid "Are you sure?"
msgstr "Oletko varma?"
#: members/templates/members_base.html:49
#: members/templates/members_base.html:50
msgid "Member list"
msgstr "Jäsenlistaus"
#: members/templates/members_base.html:50
#: members/templates/members_base.html:51
msgid "Add member"
msgstr "Lisää jäsen"
#: members/templates/members_base.html:51
#: members/templates/members_base.html:52
msgid "Add multiple"
msgstr "Lisää useita"
#: members/templates/members_base.html:52
#: members/templates/members_base.html:53
msgid "Member application"
msgstr "Jäsenhakemus"
#: members/templates/members_base.html:62
#: members/templates/members_base.html:69
msgid "Member register of SIK ry"
msgstr "Aalto-yliopiston Sähköinsinöörikilta ry:n jäsenrekisteri"
#: sikweb/settings-sample.py:146 sikweb/settings.py:146
#: sikweb/settings-sample.py:162 sikweb/settings.py:161
msgid "English"
msgstr "englanti"
#: sikweb/settings-sample.py:147 sikweb/settings.py:147
#: sikweb/settings-sample.py:163 sikweb/settings.py:162
msgid "Finnish"
msgstr "suomi"
+9 -1
View File
@@ -1,7 +1,7 @@
from rest_framework import serializers
from django.utils import timezone
from datetime import datetime
from members.models import Member
from members.models import Member, MemberRequest
from django.conf import settings
@@ -36,3 +36,11 @@ class MemberSerializer(serializers.Serializer):
instance.paid = validated_data.get('paid', instance.paid)
instance.save()
return instance
class MemberRequestSerializer(serializers.ModelSerializer):
id = serializers.IntegerField(read_only=True)
member = MemberSerializer()
class Meta:
model = MemberRequest
fields = ('id', 'member')
+7 -5
View File
@@ -38,6 +38,7 @@
<script src="/static/js/members_controllers.js"></script>
<script src="/static/js/moment.js"></script>
<link href="/static/css/simple-sidebar.css" rel="stylesheet">
<link rel="stylesheet" href="{% static "css/base.css" %}">
</head>
<body>
@@ -54,6 +55,12 @@
</div>
<!-- /#sidebar-wrapper -->
<div class="logout-button">
<form action="/logout" method="post"> {% csrf_token %}
<input type="Submit" value="{% trans "Log out" %}" name="Logout" class="btn btn-danger"/>
</form>
</div>
<!-- Page Content -->
<div class="col-xs-12 col-sm-12 col-lg-12">
<div id="header" class="row">
@@ -62,11 +69,6 @@
{% trans "Member register of SIK ry" %}
</h1>
</div>
<div class="col-xs-1 col-sm-1 col-lg-1">
<form action="/logout" method="post"> {% csrf_token %}
<input type="Submit" value="{% trans "Log out" %}" name="Logout" class="btn btn-danger" style="margin-top:12px;"/>
</form>
</div>
</div>
{% block content %}
{% endblock content %}
+13 -1
View File
@@ -11,7 +11,7 @@ import requests
from django.conf import settings
import logging
'''Rest API'''
from members.serializers import MemberSerializer
from members.serializers import MemberSerializer, MemberRequestSerializer
from rest_framework import generics
from rest_framework import generics, status, authentication, exceptions, permissions
from rest_framework.decorators import api_view, permission_classes
@@ -39,6 +39,18 @@ class MemberDetails(generics.RetrieveUpdateDestroyAPIView):
permission_classes = (HasRights, permissions.IsAuthenticated, )
throttle_classes = (BurstRateThrottle, SustainedRateThrottle, )
class MemberRequestList(generics.ListCreateAPIView):
queryset = MemberRequest.objects.all()
serializer_class = MemberRequestSerializer
permission_classes = (HasRights, permissions.IsAuthenticated, )
throttle_classes = (BurstRateThrottle, SustainedRateThrottle, )
class MemberRequestDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = MemberRequest.objects.all()
serializer_class = MemberRequestSerializer
permission_classes = (HasRights, permissions.IsAuthenticated, )
throttle_classes = (BurstRateThrottle, SustainedRateThrottle, )
########################################
# function to validate reCaptcha
def validate_recaptcha(response):
+67 -5
View File
@@ -1,10 +1,6 @@
# SIKWEB 2.0
## Installation
### Create a virtual environment for python
`virtualenv -p python3 virtualenv.sikweb`
## Accessing the source
### Clone this repository and enter it
@@ -21,6 +17,72 @@ Change to the development branch:
git checkout develop
```
## Installation with Docker
### Installing Docker
Install docker and docker-compose. On Ubuntu this can be done with
```BASH
sudo apt-get install docker docker-compose
```
### Configuring db image
```BASH
sudo docker-compose up db
```
Then configure following with another shell window
```BASH
sudo docker exec -ti <image_name> bash # image name can be found with sudo docker ps (probably web20_db_1)
mysql -u root -p # then enter root password which can be found in docker-compose.yml
```
```SQL
CREATE USER 'sik'@'%' IDENTIFIED BY 'password123';
CREATE DATABASE sik DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON `sik\_%` . * TO 'sik'@'%' IDENTIFIED BY 'password123';
GRANT ALL PRIVILEGES ON sik.* TO 'sik'@'%';
```
Then CTRL-D away from Docker bash shell and shut down database image with CTRL-C.
### Windows specific stuff
1. `sudo` is naturally not needed before any command on a windows environment
2. Before configuring the web image, click on the taskbar docker icon. Activate "shared drives" -> "share the drive repository".
### Configuring web image
1. Copy settings-sample.py to settings.py in sikweb folder.
2. Configure at least the following settings
- DATABASES: use 'db' as host and use the same user and password as configured above
3. Run the following commands:
```BASH
sudo docker-compose run web python manage.py migrate
sudo docker-compose run web python manage.py makemigrations infoscreen members webapp
sudo docker-compose run web python manage.py migrate
sudo docker-compose run web python manage.py createsuperuser
```
### Starting the dev unit
```
sudo docker-compose up
```
Now you should have a dev environment running on localhost:8000
NOTE: As your working directory (web2.0) is mounted by images, changes will be reflected immediately: no rebuilding is needed. `migrate` and `makemigrations` must still be run separately. See examples above.
## Installation with python virtualenv
### Create a virtual environment for python
`virtualenv -p python3 virtualenv.sikweb`
### Activate virtualenv (assuming we are at the root of this repository and virtualenv is one level above)
`. ../virtualenv.sikweb/bin/activate`
+7 -2
View File
@@ -45,6 +45,8 @@ from members.views import tommy_blooper
# members API
from members.views import MembersList as memsListAPI
from members.views import MemberDetails as memDetailAPI
from members.views import MemberRequestList as reqListAPI
from members.views import MemberRequestDetail as reqDetailAPI
#infoscreen
from infoscreen.views import index as infoindex
from infoscreen.views import default as infodefault
@@ -100,8 +102,11 @@ urlpatterns = [
url(r'^members/api/request/(?P<idx>\d+)$', handle_mem_request),
url(r'^members/api/getCSV$', mem_csv_export),
url(r'^members/tommy$', tommy_blooper),
url(r'^members/rest/api/members$', memsListAPI.as_view()),
url(r'^members/rest/api/members/(?P<pk>\d+)$', memDetailAPI.as_view()),
url(r'^members/rest/api/members/$', memsListAPI.as_view()),
url(r'^members/rest/api/members/(?P<pk>\d+)/$', memDetailAPI.as_view()),
url(r'^members/rest/api/requests/$', reqListAPI.as_view()),
url(r'^members/rest/api/requests/(?P<pk>\d+)/$', reqDetailAPI.as_view()),
#infoscreen
url(r'^infoscreen/$', infodefault),
url(r'^infoscreen/(?P<idx>\d+)$', infoindex),