Merge branch 'ticket-testing' into 'master'

Add datatables to ticket reports

See merge request LCA2018/symposion_app!55
This commit is contained in:
James Polley 2017-10-04 12:27:14 +00:00
commit 84f198e0e3
12 changed files with 84 additions and 69 deletions

View file

@ -1,2 +1,3 @@
.git .git
ve symposion-fixtures

View file

@ -64,10 +64,11 @@ Making migrations
If you make changes to the data model, you'll need to run "manage.py If you make changes to the data model, you'll need to run "manage.py
makemigrations" to create a matching migration file. If you're on a makemigrations" to create a matching migration file. If you're on a
mac, or a system without python3, this can be difficult. In such a mac, or a system without python3, this can be difficult.
case, the ``makemigrations.sh`` script takes advantaged of a docker
container that's slightly modified, and runs the makemigration action In such a case, you can use the above script to make and run a dev
on the files in your working directory. container; then::
docker exec -it symposion ./manage.py makemigrations
Running a dev instance in a VirtualEnv Running a dev instance in a VirtualEnv

View file

@ -1,5 +1,4 @@
FROM python:3.6 FROM python:3.6 as symposion_base
RUN set -ex \ RUN set -ex \
&& apt-get update && apt-get update
@ -41,4 +40,10 @@ RUN set -x \
&& DJANGO_SECRET_KEY=1234 STRIPE_PUBLIC_KEY=1234 STRIPE_SECRET_KEY=1234 \ && DJANGO_SECRET_KEY=1234 STRIPE_PUBLIC_KEY=1234 STRIPE_SECRET_KEY=1234 \
DATABASE_URL="sqlite:////dev/null" \ DATABASE_URL="sqlite:////dev/null" \
python manage.py collectstatic --noinput -l -v 0 python manage.py collectstatic --noinput -l -v 0
FROM symposion_base as symposion_dev
VOLUME /app/symposion_app
CMD ["./manage.py", "runserver", "-v3", "0.0.0.0:8000"]
FROM symposion_base as symposion_prod
CMD ["/usr/local/bin/uwsgi", "--http-socket", "0.0.0.0:8000", "--wsgi-file", "pinaxcon/wsgi.py"] CMD ["/usr/local/bin/uwsgi", "--http-socket", "0.0.0.0:8000", "--wsgi-file", "pinaxcon/wsgi.py"]

View file

@ -1,25 +0,0 @@
FROM python:3.6
VOLUME /source
COPY constraints.txt requirements.txt /setup/
RUN set -ex \
&& buildDeps=' \
libmysqlclient-dev \
libffi-dev \
libfreetype6-dev \
libjpeg-dev \
libwebp-dev \
libpng-dev \
liblcms2-dev \
zlib1g-dev \
libmemcached-dev \
libsasl2-dev \
' \
&& apt-get update \
&& apt-get install -y git xmlsec1 libmysqlclient18 \
&& apt-get install -y $buildDeps --no-install-recommends
RUN pip install -c /setup/constraints.txt -r /setup/requirements.txt
COPY . /source
WORKDIR /source
RUN pip install -c /setup/constraints.txt -r /source/vendored_requirements.txt
ENTRYPOINT ["python","/source/manage.py", "makemigrations"]

View file

@ -5,3 +5,4 @@ GCS_BUCKET=5CEA51A5-A613-4AEF-A9FB-D0A57D77C13B
GOOGLE_APPLICATION_CREDENTIALS=/dev/null GOOGLE_APPLICATION_CREDENTIALS=/dev/null
DATABASE_URL=sqlite:////tmp/symposion.sqlite DATABASE_URL=sqlite:////tmp/symposion.sqlite
SYMPOSION_DEV_MODE=LAPTOP SYMPOSION_DEV_MODE=LAPTOP
SYMPOSION_APP_DEBUG=1

View file

@ -2,10 +2,10 @@
CONTAINER_NAME=${1:-symposion_app} CONTAINER_NAME=${1:-symposion_app}
docker image build -f docker/Dockerfile -t ${CONTAINER_NAME} . docker image build -f docker/Dockerfile -t ${CONTAINER_NAME} --target symposion_dev .
docker container stop symposion docker container stop symposion
docker container rm symposion docker container rm symposion
docker container create --env-file docker/laptop-mode-env -p 28000:8000 --name symposion ${CONTAINER_NAME} docker container create --env-file docker/laptop-mode-env -p 28000:8000 -v $(pwd):/app/symposion_app --name symposion ${CONTAINER_NAME}
docker container start symposion docker container start symposion
docker exec symposion ./manage.py migrate docker exec symposion ./manage.py migrate
docker exec symposion ./manage.py loaddata ./fixtures/*.json docker exec symposion ./manage.py loaddata ./fixtures/*.json

View file

@ -1,4 +0,0 @@
#!/bin/bash -x
docker image build -f docker/Dockerfile.makemigrations -t makemigrations .
docker run -it --env-file=docker/laptop-mode-env -v $(pwd):/source makemigrations $*

View file

@ -34,8 +34,10 @@ THIS IS THE FORM
{% include "_form_snippet.html" with form=form %} {% include "_form_snippet.html" with form=form %}
<br /> <br />
<div class="btn-group"> <div class="btn-group">
<input class="btn" type="submit" value="Save Profile" /> <input class="btn btn-success" type="submit" value="Save Profile" />
<a class="btn btn-primary" href="{% url "dashboard" %}">Return to dashboard</a> {% if user.attendee %}
<a class="btn btn-info" href="{% url "dashboard" %}">Cancel</a>
{% endif %}
</div> </div>
</fieldset> </fieldset>
</form> </form>

View file

@ -19,12 +19,15 @@
{% for report in reports %} {% for report in reports %}
<h3>{{ report.title }}</h3> <h3>{{ report.title }}</h3>
<table class="table table-striped"> <table class="table table-striped table-reportdata">
<thead>
<tr> <tr>
{% for heading in report.headings %} {% for heading in report.headings %}
<th>{{ heading }}</th> <th>{{ heading }}</th>
{% endfor %} {% endfor %}
</tr> </tr>
</thead>
<tbody>
{% for line in report.rows %} {% for line in report.rows %}
<tr> <tr>
{% for item in line %} {% for item in line %}
@ -34,7 +37,33 @@
{% endfor %} {% endfor %}
</tr> </tr>
{% endfor %} {% endfor %}
</tbody>
</table> </table>
{% endfor %} {% endfor %}
{% endblock %} {% endblock %}
{% block extra_script %}
<script src="{{ STATIC_URL }}datatables/js/jquery.dataTables.min.js" type="text/javascript"></script>
<script src="{{ STATIC_URL }}tabletools/js/TableTools.min.js" type="text/javascript"></script>
<script src="{{ STATIC_URL }}datatables/js/dataTables.bootstrap.js" type="text/javascript"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/ace.js"></script>
<script type="text/javascript">
$(function() {
$("table.table-reportdata").dataTable({
"sDom": "<'row'<'col-md-3'l><'col-md-3'T><'col-md-4'f>r>t<'row'<'col-md-3'i><'col-md-5'p>>",
"sPaginationType": "bootstrap",
"aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]],
"bStateSave": true,
"oTableTools": {
"aButtons": [
"copy",
"csv",
"print"
],
"sSwfPath": "{{ STATIC_URL }}tabletools/swf/copy_csv_xls.swf"
}
});
});
</script>
{% endblock %}

View file

@ -80,6 +80,7 @@
"sDom": "<'row'<'col-md-3'l><'col-md-3'T><'col-md-4'f>r>t<'row'<'col-md-3'i><'col-md-5'p>>", "sDom": "<'row'<'col-md-3'l><'col-md-3'T><'col-md-4'f>r>t<'row'<'col-md-3'i><'col-md-5'p>>",
"sPaginationType": "bootstrap", "sPaginationType": "bootstrap",
"bStateSave": true, "bStateSave": true,
"aLengthMenu": [[10, 25, 50, -1], [10, 25, 50, "All"]],
"oTableTools": { "oTableTools": {
"aButtons": [ "aButtons": [
"copy", "copy",

View file

@ -108,12 +108,12 @@
<script src="{{ STATIC_URL }}datatables/js/dataTables.bootstrap.js" type="text/javascript"></script> <script src="{{ STATIC_URL }}datatables/js/dataTables.bootstrap.js" type="text/javascript"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/ace.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/ace/1.2.0/ace.js"></script>
<script type="text/javascript"> <script type="text/javascript">
$(function() { $("table.table-reportdata").each(function () {
$(".tip").tooltip(); $(this).dataTable({
$("table.table-reviews").dataTable({
"sDom": "<'row'<'col-md-3'l><'col-md-3'T><'col-md-4'f>r>t<'row'<'col-md-3'i><'col-md-5'p>>", "sDom": "<'row'<'col-md-3'l><'col-md-3'T><'col-md-4'f>r>t<'row'<'col-md-3'i><'col-md-5'p>>",
"sPaginationType": "bootstrap", "sPaginationType": "bootstrap",
"bStateSave": true, "bStateSave": true,
"aLengthMenu": [[10, 50, 100, -1], [10, 50, 100, "All"]],
"oTableTools": { "oTableTools": {
"aButtons": [ "aButtons": [
"copy", "copy",

View file

@ -34,12 +34,15 @@
<h3 class="panel-title">{{ report.title }}</h3> <h3 class="panel-title">{{ report.title }}</h3>
</div> </div>
<table class="table table-striped"> <table class="table table-striped table-reportdata">
<thead>
<tr> <tr>
{% for heading in report.headings %} {% for heading in report.headings %}
<th>{{ heading }}</th> <th>{{ heading }}</th>
{% endfor %} {% endfor %}
</tr> </tr>
</thead>
<tbody>
{% for line in report.rows %} {% for line in report.rows %}
<tr> <tr>
{% for item in line %} {% for item in line %}
@ -49,6 +52,7 @@
{% endfor %} {% endfor %}
</tr> </tr>
{% endfor %} {% endfor %}
</tbody>
</table> </table>
</div> </div>