indoor pin and cteward integration
This commit is contained in:
parent
0c7b3b9d62
commit
ac372412fd
13 changed files with 224 additions and 32 deletions
|
|
@ -141,8 +141,8 @@ class NRF24Form(forms.Form):
|
||||||
|
|
||||||
|
|
||||||
class CLabPinForm(forms.Form):
|
class CLabPinForm(forms.Form):
|
||||||
c_lab_pin1 = GastroPinField(label=_('New c-lab PIN'))
|
c_lab_pin1 = GastroPinField(label=_('New indoor PIN'))
|
||||||
c_lab_pin2 = GastroPinField(label=_('Repeat c-lab PIN'),
|
c_lab_pin2 = GastroPinField(label=_('Repeat indoor PIN'),
|
||||||
help_text=_('Numerical only, 4 to 8 digits'))
|
help_text=_('Numerical only, 4 to 8 digits'))
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -105,12 +105,12 @@ msgid "Your r0ket's NRF24 identification"
|
||||||
msgstr "Die NRF24-ID deiner r0ket"
|
msgstr "Die NRF24-ID deiner r0ket"
|
||||||
|
|
||||||
#: forms.py:130
|
#: forms.py:130
|
||||||
msgid "New c-lab PIN"
|
msgid "New indoor PIN"
|
||||||
msgstr "Neue c-lab-PIN"
|
msgstr "Neue innentür-PIN"
|
||||||
|
|
||||||
#: forms.py:131
|
#: forms.py:131
|
||||||
msgid "Repeat c-lab PIN"
|
msgid "Repeat indoor PIN"
|
||||||
msgstr "c-lab-PIN wiederholen"
|
msgstr "Innentür-PIN wiederholen"
|
||||||
|
|
||||||
#: forms.py:149
|
#: forms.py:149
|
||||||
msgid "Select the username for whom you want to reset the password."
|
msgid "Select the username for whom you want to reset the password."
|
||||||
|
|
@ -192,12 +192,12 @@ msgid "This crewname is still available."
|
||||||
msgstr "Dieser Crewname ist noch zu haben."
|
msgstr "Dieser Crewname ist noch zu haben."
|
||||||
|
|
||||||
#: templates/clabpin.html:5
|
#: templates/clabpin.html:5
|
||||||
msgid "c-lab PIN"
|
msgid "Indoor PIN"
|
||||||
msgstr "c-lab-PIN"
|
msgstr "Innentür-PIN"
|
||||||
|
|
||||||
#: templates/clabpin.html:8
|
#: templates/clabpin.html:8
|
||||||
msgid "Change your c-lab PIN to access the c-lab in the basement."
|
msgid "Change your PIN to access rooms secured with PIN-pad."
|
||||||
msgstr "PIN ändern für den Zugang zum c-lab im Keller."
|
msgstr "PIN ändern für den Zugang zu PIN-pad-geschützten Räumen."
|
||||||
|
|
||||||
#: templates/gastropin.html:5
|
#: templates/gastropin.html:5
|
||||||
msgid "Gastro PIN"
|
msgid "Gastro PIN"
|
||||||
|
|
@ -331,8 +331,8 @@ msgid "RFID"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: templates/member_base.html:29
|
#: templates/member_base.html:29
|
||||||
msgid "c-lab-PIN"
|
msgid "Indoor-PIN"
|
||||||
msgstr "c-lab-PIN"
|
msgstr "Innentür-PIN"
|
||||||
|
|
||||||
#: templates/member_base.html:33 templates/nrf24.html:5
|
#: templates/member_base.html:33 templates/nrf24.html:5
|
||||||
msgid "NRF24"
|
msgid "NRF24"
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@ class UserProfile(models.Model):
|
||||||
is_clab_member = models.BooleanField(default=False, editable=False)
|
is_clab_member = models.BooleanField(default=False, editable=False)
|
||||||
is_cey_member = models.BooleanField(default=False, editable=False)
|
is_cey_member = models.BooleanField(default=False, editable=False)
|
||||||
is_ceymaster = models.BooleanField(default=False, editable=False)
|
is_ceymaster = models.BooleanField(default=False, editable=False)
|
||||||
|
is_soundlab_member = models.BooleanField(default=False, editable=False)
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
return 'Profile: %s' % self.user.username
|
return 'Profile: %s' % self.user.username
|
||||||
|
|
|
||||||
0
account/templates/500.html
Normal file
0
account/templates/500.html
Normal file
|
|
@ -2,10 +2,10 @@
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% load crispy_forms_tags %}
|
{% load crispy_forms_tags %}
|
||||||
|
|
||||||
{% block form_title %}{% trans "c-lab PIN"%}{% endblock %}
|
{% block form_title %}{% trans "Indoor PIN"%}{% endblock %}
|
||||||
|
|
||||||
{% block form_description %}
|
{% block form_description %}
|
||||||
<p>{% blocktrans %}Change your c-lab PIN to access the c-lab in the basement.{% endblocktrans %}</p>
|
<p>{% blocktrans %}Change your PIN to access rooms secured with PIN-pad.{% endblocktrans %}</p>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block form_fields %}
|
{% block form_fields %}
|
||||||
|
|
|
||||||
|
|
@ -37,21 +37,36 @@
|
||||||
|
|
||||||
<h3>{% trans "Management information" %}</h3>
|
<h3>{% trans "Management information" %}</h3>
|
||||||
|
|
||||||
<ul>
|
<table class="table table-condensed table-bordered table-hover">
|
||||||
<li>{% trans "Name:" %}
|
<tr><td>{% trans "Crewname:" %}</td><td>{{ cteward.Crewname }}</td></tr>
|
||||||
{{ member.displayName }}
|
<tr><td>{% trans "Membership Number:" %}</td><td>{{ cteward.Mitgliedsnummer }}</td></tr>
|
||||||
</li>
|
<tr><td>{% trans "Status:" %}</td><td>{{ cteward.Status }}</td></tr>
|
||||||
<li>
|
<tr>
|
||||||
{% trans "External e-mail address:" %}
|
<td>{% trans "External e-mail address:" %}</td><td>{{ member.externalEmail }}</td>
|
||||||
{{ member.externalEmail }}<br>
|
<!--<td>
|
||||||
<span class="muted">{% blocktrans %}The external e-mail address is used by the
|
<span class="muted">{% blocktrans %}The external e-mail address is used by the
|
||||||
board of c-base to reach you in cases where your c-base
|
board of c-base to reach you in cases where your c-base
|
||||||
address (see above) is not working. To change your
|
address (see above) is not working. To change your
|
||||||
external e-mail address please contact the c-base board via {% endblocktrans %}
|
external e-mail address please contact the c-base board via {% endblocktrans %}
|
||||||
(<a href="mailto:cash@c-base.org">cash@c-base.org</a>).</span>
|
(<a href="mailto:cash@c-base.org">cash@c-base.org</a>).</span>
|
||||||
</li>
|
</td>-->
|
||||||
</ul>
|
</tr>
|
||||||
|
<tr><td>{% trans "Firstname:" %}</td><td>{{ cteward.Vorname }}</td></tr>
|
||||||
|
<tr><td>{% trans "Lastname:" %}</td><td>{{ cteward.Nachname }}</td></tr>
|
||||||
|
<tr><td>{% trans "Street:" %}</td><td>{{ cteward.Strasse }}</td></tr>
|
||||||
|
<tr><td>{% trans "Postcode:" %}</td><td>{{ cteward.PLZ }}</td></tr>
|
||||||
|
<tr><td>{% trans "City:" %}</td><td>{{ cteward.Ort }}</td></tr>
|
||||||
|
<tr><td>{% trans "Gender:" %}</td><td>{{ cteward.Geschlecht }}</td></tr>
|
||||||
|
<tr><td>{% trans "Birth Date:" %}</td><td>{{ cteward.Geburtsdatum }}</td></tr>
|
||||||
|
<tr><td>{% trans "Entry Date:" %}</td><td>{{ cteward.Eintritt }}</td></tr>
|
||||||
|
<tr><td>{% trans "Godfather:" %}</td><td>{{ cteward.Paten }}</td></tr>
|
||||||
|
<tr><td>{% trans "Payment Method:" %}</td><td>{{ cteward.Zahlungsart }}</td></tr>
|
||||||
|
<tr><td>{% trans "Payment Frequency:" %}</td><td>{{ cteward.Zahlungsweise }}</td></tr>
|
||||||
|
<tr><td>{% trans "Debit Authorization:" %}</td><td>{{ cteward.Lastschriftmandat }}</td></tr>
|
||||||
|
<tr><td>{% trans "Bank:" %}</td><td>{{ cteward.Bank }}</td></tr>
|
||||||
|
<tr><td>{% trans "IBAN:" %}</td><td>{{ cteward.IBAN }}</td></tr>
|
||||||
|
<tr><td>{% trans "BIC:" %}</td><td>{{ cteward.BIC }}</td></tr>
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endblock container %}
|
{% endblock container %}
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
</li>
|
</li>
|
||||||
{% url account.views.clabpin as clab_url %}
|
{% url account.views.clabpin as clab_url %}
|
||||||
<li class="{% if request.path == clab_url %}active{% endif %}">
|
<li class="{% if request.path == clab_url %}active{% endif %}">
|
||||||
<a href="{{ clab_url }}">{% trans "c-lab-PIN" %}</a>
|
<a href="{{ clab_url }}">{% trans "Indoor-PIN" %}</a>
|
||||||
</li>
|
</li>
|
||||||
{% url account.views.nrf24 as nrf24_url %}
|
{% url account.views.nrf24 as nrf24_url %}
|
||||||
<li class="{% if request.path == nrf24_url %}active{% endif %}">
|
<li class="{% if request.path == nrf24_url %}active{% endif %}">
|
||||||
|
|
@ -50,7 +50,7 @@
|
||||||
|
|
||||||
<hr />
|
<hr />
|
||||||
<div class="row pull-right">
|
<div class="row pull-right">
|
||||||
<small class="muted">Copyright © 2013 by c-base e.V.</small>
|
<small class="muted">Copyright © 2015 by c-base e.V.</small>
|
||||||
</div>
|
</div>
|
||||||
</div><!-- /.container -->
|
</div><!-- /.container -->
|
||||||
{% endblock body %}
|
{% endblock body %}
|
||||||
|
|
|
||||||
114
account/templates/memberstatus.html
Normal file
114
account/templates/memberstatus.html
Normal file
|
|
@ -0,0 +1,114 @@
|
||||||
|
{% extends "member_base.html" %}
|
||||||
|
{% load i18n %}
|
||||||
|
|
||||||
|
{% block container %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<h3>{% trans "Basic information about your account" %}</h3>
|
||||||
|
|
||||||
|
{{ contributions }}
|
||||||
|
|
||||||
|
<table class="table table-condensed table-bordered table-hover">
|
||||||
|
<tr><td>{% trans "Crewname:" %}</td><td>{{ cteward.Crewname }}</td></tr>
|
||||||
|
<tr><td>{% trans "Membership Number:" %}</td><td>{{ cteward.Mitgliedsnummer }}</td></tr>
|
||||||
|
<tr><td>{% trans "Status:" %}</td><td>{{ cteward.Status }}</td></tr>
|
||||||
|
<tr><td>{% trans "Firstname:" %}</td><td>{{ cteward.Vorname }}</td></tr>
|
||||||
|
<tr><td>{% trans "Lastname:" %}</td><td>{{ cteward.Nachname }}</td></tr>
|
||||||
|
<tr><td>{% trans "Street:" %}</td><td>{{ cteward.Strasse }}</td></tr>
|
||||||
|
<tr><td>{% trans "Postcode:" %}</td><td>{{ cteward.PLZ }}</td></tr>
|
||||||
|
<tr><td>{% trans "City:" %}</td><td>{{ cteward.Ort }}</td></tr>
|
||||||
|
<tr><td>{% trans "Gender:" %}</td><td>{{ cteward.Geschlecht }}</td></tr>
|
||||||
|
<tr><td>{% trans "Birth Date:" %}</td><td>{{ cteward.Geburtsdatum }}</td></tr>
|
||||||
|
<tr><td>{% trans "Entry Date:" %}</td><td>{{ cteward.Eintritt }}</td></tr>
|
||||||
|
<tr><td>{% trans "Godfather:" %}</td><td>{{ cteward.Paten }}</td></tr>
|
||||||
|
<tr><td>{% trans "Payment Method:" %}</td><td>{{ cteward.Zahlungsart }}</td></tr>
|
||||||
|
<tr><td>{% trans "Payment Frequency:" %}</td><td>{{ cteward.Zahlungsweise }}</td></tr>
|
||||||
|
<tr><td>{% trans "Debit Authorization:" %}</td><td>{{ cteward.Lastschriftmandat }}</td></tr>
|
||||||
|
<tr><td>{% trans "Bank:" %}</td><td>{{ cteward.Bank }}</td></tr>
|
||||||
|
<tr><td>{% trans "IBAN:" %}</td><td>{{ cteward.IBAN }}</td></tr>
|
||||||
|
<tr><td>{% trans "BIC:" %}</td><td>{{ cteward.BIC }}</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div>
|
||||||
|
<h3>{% trans "Contributions:" %}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="panel-group" id="accordion">
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<a class="btn btn-lg btn-default btn-block" data-toggle="collapse" data-parent="#accordion" href="#total">{% trans "Total" %}</a>
|
||||||
|
<div id="total" class="panel-collapse">
|
||||||
|
<div class="terminal">
|
||||||
|
<table class="table table-condensed table-bordered table-hover">
|
||||||
|
<tr><td>{% trans "Billed:" %}</td><td>{{ contributions.total.billed }}</td></tr>
|
||||||
|
<tr><td>{% trans "Paid:" %}</td><td>{{ contributions.total.paid }}</td></tr>
|
||||||
|
<tr><td>{% trans "Unpaid:" %}</td><td>{{ contributions.total.unpaid }}</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% for year,values in contributions.years %}
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<a class="btn btn-lg btn-default btn-block" data-toggle="collapse" data-parent="#accordion" href="#{{ year }}">{{ year }}</a>
|
||||||
|
<div id="{{ year }}" class="panel-collapse collapse">
|
||||||
|
<div class="terminal">
|
||||||
|
<table class="table table-condensed table-bordered table-hover">
|
||||||
|
<tr><td>{% trans "Billed:" %}</td><td>{{ values.billed }}</td></tr>
|
||||||
|
<tr><td>{% trans "Paid:" %}</td><td>{{ values.paid }}</td></tr>
|
||||||
|
<tr><td>{% trans "Unpaid:" %}</td><td>{{ values.unpaid }}</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% empty %}
|
||||||
|
<a class="btn btn-block btn-lg btn-default btn-block"><b>{% trans "no data available" %}</b></a>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-12">
|
||||||
|
<div>
|
||||||
|
<h3>{% trans "Contracts:" %}</h3>
|
||||||
|
</div>
|
||||||
|
<div class="panel-group" id="contract-accordion">
|
||||||
|
{% for contract in contributions.contracts %}
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<a class="btn btn-lg btn-default btn-block" data-toggle="collapse" data-parent="#contract-accordion" href="#{{ contract.Vertragsnummer }}">Contract #{{ contract.Vertragsnummer }}</a>
|
||||||
|
<div id="{{ contract.Vertragsnummer }}" class="panel-collapse collapse">
|
||||||
|
<div class="terminal">
|
||||||
|
<table class="table table-condensed table-bordered table-hover">
|
||||||
|
<tr><td>{% trans "Type:" %}</td><td>{{ contract.Art }}</td></tr>
|
||||||
|
<tr><td>{% trans "Total:" %}</td><td>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>{% trans "Billed:" %}</td><td>{{ contract.total.billed }}</td>
|
||||||
|
<td>{% trans "Paid:" %}</td><td>{{ contract.total.paid }}</td>
|
||||||
|
<td>{% trans "Unpaid:" %}</td><td>{{ contract.total.unpaid }}</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td></tr>
|
||||||
|
<tr><td>{% trans "Sums:" %}</td><td>
|
||||||
|
<table>
|
||||||
|
{% for detail, values in contract.Summen.items %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ detail }}:</td>
|
||||||
|
<td>{% trans "Billed:" %}</td><td>{{ values.billed }}</td>
|
||||||
|
<td>{% trans "Paid:" %}</td><td>{{ values.paid }}</td>
|
||||||
|
<td>{% trans "Unpaid:" %}</td><td>{{ values.unpaid }}</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</table>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% empty %}
|
||||||
|
<a class="btn btn-block btn-lg btn-default btn-block"><b>{% trans "no data available" %}</b></a>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock container %}
|
||||||
|
|
@ -13,6 +13,7 @@ urlpatterns = patterns(
|
||||||
url(r'^sippin/$', 'account.views.sippin', name='sippin'),
|
url(r'^sippin/$', 'account.views.sippin', name='sippin'),
|
||||||
url(r'^clabpin/$', 'account.views.clabpin', name='clabpin'),
|
url(r'^clabpin/$', 'account.views.clabpin', name='clabpin'),
|
||||||
url(r'^admin/$', 'account.views.admin', name='admin'),
|
url(r'^admin/$', 'account.views.admin', name='admin'),
|
||||||
|
url(r'^memberstatus/$', 'account.views.memberstatus', name='memberstatus'),
|
||||||
url(r'^$', 'account.views.home', name="home"),
|
url(r'^$', 'account.views.home', name="home"),
|
||||||
url(r'^groups/(?P<group_name>[^/]+)/', 'account.views.groups_list'),
|
url(r'^groups/(?P<group_name>[^/]+)/', 'account.views.groups_list'),
|
||||||
)
|
)
|
||||||
|
|
@ -4,6 +4,8 @@
|
||||||
import os
|
import os
|
||||||
import hashlib
|
import hashlib
|
||||||
import smbpasswd
|
import smbpasswd
|
||||||
|
import requests
|
||||||
|
import collections
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.http import HttpResponse, HttpResponseRedirect
|
from django.http import HttpResponse, HttpResponseRedirect
|
||||||
|
|
@ -82,9 +84,16 @@ def auth_login(request):
|
||||||
def home(request):
|
def home(request):
|
||||||
member = retrieve_member(request)
|
member = retrieve_member(request)
|
||||||
number_of_members = member.get_number_of_members()
|
number_of_members = member.get_number_of_members()
|
||||||
|
password = get_ldap_password(request)
|
||||||
|
username = request.user.username
|
||||||
|
url = "https://vorstand.c-base.org/cteward-api/legacy/member/%s" % username
|
||||||
|
r = requests.get(url, verify=False, auth=(username, password))
|
||||||
|
cteward = r.json()
|
||||||
context = {'member': member.to_dict(),
|
context = {'member': member.to_dict(),
|
||||||
'groups': sorted(list(request.user.groups.all())),
|
'groups': sorted(list(request.user.groups.all())),
|
||||||
'number_of_members': number_of_members}
|
'number_of_members': number_of_members,
|
||||||
|
'cteward': cteward,
|
||||||
|
}
|
||||||
return render(request, 'home.html', context)
|
return render(request, 'home.html', context)
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
|
|
@ -151,8 +160,11 @@ def gastropin(request):
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def clabpin(request):
|
def clabpin(request):
|
||||||
if not (request.user.profile.is_clab_member or request.user.profile.is_cey_member):
|
if not (
|
||||||
#if not request.user.profile.is_clab_member:
|
request.user.profile.is_clab_member or
|
||||||
|
request.user.profile.is_cey_member or
|
||||||
|
request.user.profile.is_soundlab_member
|
||||||
|
):
|
||||||
return render(request, 'access_denied.html')
|
return render(request, 'access_denied.html')
|
||||||
|
|
||||||
def calculate_clab_hash(pin):
|
def calculate_clab_hash(pin):
|
||||||
|
|
@ -280,3 +292,24 @@ def admin(request):
|
||||||
|
|
||||||
def hammertime(request):
|
def hammertime(request):
|
||||||
return render(request, 'hammertime.html', {})
|
return render(request, 'hammertime.html', {})
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
def memberstatus(request):
|
||||||
|
#url = baseurl + route_operation_mapping['SessionCreate']['Route']
|
||||||
|
#data = json.dumps({'UserLogin': username, 'Password': password})
|
||||||
|
password = get_ldap_password(request)
|
||||||
|
username = request.user.username
|
||||||
|
|
||||||
|
url = "https://vorstand.c-base.org/cteward-api/legacy/member/%s/contributions" % username
|
||||||
|
r = requests.get(url, verify=False, auth=(username, password))
|
||||||
|
contributions = r.json()
|
||||||
|
years = collections.OrderedDict(sorted(contributions['years'].items(), reverse=True))
|
||||||
|
contributions['years'] = years.items()
|
||||||
|
|
||||||
|
url = "https://vorstand.c-base.org/cteward-api/legacy/member/%s" % username
|
||||||
|
r = requests.get(url, verify=False, auth=(username, password))
|
||||||
|
cteward = r.json()
|
||||||
|
|
||||||
|
return render(request, 'memberstatus.html', {'contributions': contributions, 'cteward': cteward})
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
28
account/wsgi.py
Normal file
28
account/wsgi.py
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
"""
|
||||||
|
WSGI config for cbmi project.
|
||||||
|
|
||||||
|
This module contains the WSGI application used by Django's development server
|
||||||
|
and any production WSGI deployments. It should expose a module-level variable
|
||||||
|
named ``application``. Django's ``runserver`` and ``runfcgi`` commands discover
|
||||||
|
this application via the ``WSGI_APPLICATION`` setting.
|
||||||
|
|
||||||
|
Usually you will have the standard Django WSGI application here, but it also
|
||||||
|
might make sense to replace the whole Django WSGI application with a custom one
|
||||||
|
that later delegates to the Django one. For example, you could introduce WSGI
|
||||||
|
middleware here, or combine a Django application with an application of another
|
||||||
|
framework.
|
||||||
|
|
||||||
|
"""
|
||||||
|
import os
|
||||||
|
|
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "cbmi.settings")
|
||||||
|
|
||||||
|
# This application object is used by any WSGI server configured to use this
|
||||||
|
# file. This includes Django's development server, if the WSGI_APPLICATION
|
||||||
|
# setting points here.
|
||||||
|
from django.core.wsgi import get_wsgi_application
|
||||||
|
application = get_wsgi_application()
|
||||||
|
|
||||||
|
# Apply WSGI middleware here.
|
||||||
|
# from helloworld.wsgi import HelloWorldApplication
|
||||||
|
# application = HelloWorldApplication(application)
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
Django==1.4.2
|
Django==1.4.2
|
||||||
MySQL-python==1.2.4
|
#MySQL-python==1.2.4
|
||||||
django-auth-ldap==1.1.4
|
django-auth-ldap==1.1.4
|
||||||
django-json-rpc==0.6.1
|
django-json-rpc==0.6.1
|
||||||
django-crispy-forms==1.4.0
|
django-crispy-forms==1.4.0
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue