Commit 120b5ef1 authored by okhin's avatar okhin 🚴
Browse files

Merge branch 'master' into 'feat_52'

# Conflicts:
#   bt/admin.py
#   nnmon/urls.py
parents 937ea70a e67ab765
...@@ -14,6 +14,8 @@ uwsgi. ...@@ -14,6 +14,8 @@ uwsgi.
You need to install some development package to activate al the needed python You need to install some development package to activate al the needed python
modules. modules.
On Debian or Ubuntu, this will be done with the following command:
sudo apt-get install libxml2-dev libxslt-dev build-essential python-dev libsqlite3-dev libjpeg-dev zlib1g-dev libapache2-mod-uwsgi libapache2-mod-wsgi uwsgi-plugin-python libfreetype6-dev uwsgi sudo apt-get install libxml2-dev libxslt-dev build-essential python-dev libsqlite3-dev libjpeg-dev zlib1g-dev libapache2-mod-uwsgi libapache2-mod-wsgi uwsgi-plugin-python libfreetype6-dev uwsgi
## Create a virtualenv ## Create a virtualenv
...@@ -28,7 +30,7 @@ application from there. ...@@ -28,7 +30,7 @@ application from there.
You need to git clone the repository: You need to git clone the repository:
git clone http:/git.laquadrature.net/la-quadrature-du-net/respect-my-net.git respect-my-net git clone gitlab@git.laquadrature.net/la-quadrature-du-net/respect-my-net.git respect-my-net
## Install the module dependencies ## Install the module dependencies
...@@ -54,8 +56,8 @@ To run server, just do: ...@@ -54,8 +56,8 @@ To run server, just do:
## Set-up uwsgi ## Set-up uwsgi
You need to create an application for uwsgi. Create a file in You need to create an application for uwsgi. Create a file in
/etc/uwsgi/apps-available with the fllowing content. Adapat to your needs and `/etc/uwsgi/apps-available` with the following content. Adapt to your needs
read the documentation: and read the documentation:
[uwsgi] [uwsgi]
plugins = python plugins = python
...@@ -79,7 +81,7 @@ repository), chdir is the same path. Home, is the path of the virtualenv created ...@@ -79,7 +81,7 @@ repository), chdir is the same path. Home, is the path of the virtualenv created
above. above.
Now you need to activate the apps by creating a symoblic link into Now you need to activate the apps by creating a symoblic link into
/etc/uwsgi/apps-enabled, and to restart uwsgi. `/etc/uwsgi/apps-enabled`, and to restart uwsgi.
cd /etc/uwsgi/apps-enabled cd /etc/uwsgi/apps-enabled
ln -s ../apps-available/nnmond.conf ln -s ../apps-available/nnmond.conf
...@@ -94,7 +96,7 @@ need to actvivate the uwsgi module: ...@@ -94,7 +96,7 @@ need to actvivate the uwsgi module:
service apache2 restart service apache2 restart
And now you need to create a VirtualHost in And now you need to create a VirtualHost in
/etc/apache2/sites-availabe/nnmon.conf `/etc/apache2/sites-availabe/nnmon.conf`
<virtualhost *:80> <virtualhost *:80>
ServerName rmn.example.com ServerName rmn.example.com
...@@ -114,4 +116,3 @@ production use, you should use a TLS VirtualHost. ...@@ -114,4 +116,3 @@ production use, you should use a TLS VirtualHost.
a2ensite nnmon a2ensite nnmon
service apache2 reload service apache2 reload
from django.contrib import admin from django.contrib import admin
from django.contrib.admin import AdminSite
from bt import models from bt import models
class CommentInline(admin.TabularInline): class CommentInline(admin.TabularInline):
...@@ -8,7 +6,7 @@ class CommentInline(admin.TabularInline): ...@@ -8,7 +6,7 @@ class CommentInline(admin.TabularInline):
max_num = 1 max_num = 1
class ViolationAdmin(admin.ModelAdmin): class ViolationAdmin(admin.ModelAdmin):
list_display = ('state', 'country', 'operator', 'contract', 'resource_name', 'media', 'activationid', 'old') list_display = ('state', 'country', 'operator', 'contract', 'resource_name', 'media', 'activationid', 'old', 'creation_date')
list_filter = ('state', 'operator_ref', 'contract', 'resource_name', 'media', 'country', 'old') list_filter = ('state', 'operator_ref', 'contract', 'resource_name', 'media', 'country', 'old')
inlines = [CommentInline, ] inlines = [CommentInline, ]
admin.site.register(models.Violation, ViolationAdmin) admin.site.register(models.Violation, ViolationAdmin)
...@@ -35,9 +33,4 @@ class OperatorAdmin(admin.ModelAdmin): ...@@ -35,9 +33,4 @@ class OperatorAdmin(admin.ModelAdmin):
list_display = ("__unicode__", "reported_violations") list_display = ("__unicode__", "reported_violations")
search_fields = ('name', ) search_fields = ('name', )
pass pass
admin.site.register(models.Operator, OperatorAdmin) admin.site.register(models.Operator, OperatorAdmin)
\ No newline at end of file
class ManagerSite(AdminSite):
site_header = 'Manager Site'
manager_site = ManagerSite(name='manager')
from django import forms from django import forms
from django.conf import settings from django.conf import settings
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext as _
from haystack.forms import SearchForm from haystack.forms import SearchForm
from haystack.query import SearchQuerySet from haystack.query import SearchQuerySet
from bt.models import Violation, COUNTRIES, RESOURCES, TYPES, MEDIA from bt.models import Violation, COUNTRIES, RESOURCES, TYPES, MEDIA
......
nnmon/static/img/noise.png

22.5 KB | W: | H:

nnmon/static/img/noise.png

22.5 KB | W: | H:

nnmon/static/img/noise.png
nnmon/static/img/noise.png
nnmon/static/img/noise.png
nnmon/static/img/noise.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -106,94 +106,96 @@ ...@@ -106,94 +106,96 @@
</div> </div>
</nav> </nav>
{% if messages %} {% if messages %}
{% for message in messages %} {% for message in messages %}
<div class="alert alert-{{ message.tags }} alert-dismissible" role="alert"> <div class="alert alert-{{ message.tags }} alert-dismissible" role="alert">
<button tye="button" class="close" data-dismiss="alert" aria-lable={% trans "Close" %}><span aria-hidden="true">&times;</span></button> <button tye="button" class="close" data-dismiss="alert" aria-lable={% trans "Close" %}><span aria-hidden="true">&times;</span></button>
{{message|safe}} {{message|safe}}
</div> </div>
{% endfor %} {% endfor %}
{% endif %} {% endif %}
<div id="wrapper"> <div id="wrapper">
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<div class="col-xs-12 col-md-8 col-md-offset-2"> <div class="col-xs-12 col-md-8 col-md-offset-2">
{% block content %} {% block content %}
{% endblock %} {% endblock %}
</div>
</div>
<div class="row">
<div class="col-xs-12 col-md-8 col-md-offset-2">
{% block other_content %}
{% endblock %}
</div>
</div> </div>
</div> </div>
</div>
<div id="footer" class="container-fluid">
<div class="row"> <div class="row">
<div class="col-md-10 col-md-offset-1"> <div class="col-xs-12 col-md-8 col-md-offset-2">
<p style="padding:25px 5% 10px 5%;">{% trans "RespectMyNet.eu is an online platform enabling citizens to report net neutrality violations. Everyone is invited to report blocking or throttling of their Internet access or unfair discrimination between online services. This will help to shed light on those harmful practices and provide evidence to the telecom regulators to do their duty to defend the open and innovative Internet in Europe." %}</p> {% block other_content %}
<ul> {% endblock %}
<li class="logo-org">
<a href="https://www.accessnow.org/"> <img alt="Access Now logo" src="/static/img/logos/accessnow.png" /><br> Access Now </a>
</li>
<li class="logo-org">
<a href="https://www.laquadrature.net/"> <img alt="LQDN logo" src="/static/img/logos/la-quadrature-du-net.png" /><br> La Quadrature du Net </a>
</li>
<li class="logo-org">
<a href="https://www.bof.nl/"> <img alt="BoF logo" src="/static/img/logos/Bits-of-Freedom.png" /><br> Bits of Freedom </a>
</li>
<li class="logo-org">
<a href="https://digitalegesellschaft.de"> <img alt="Digitale Gesellschaft logo" src="/static/img/logos/digitalegesellschaft.png" /><br> Digitale Gesellschaft </a>
</li>
<li class="logo-org">
<a href="https://edri.org/"> <img alt="EDRI logo" src="/static/img/logos/edri.png" /><br> European Digital Rights </a>
</li>
<li class="logo-org">
<a href="https://epicenter.works/"> <img alt="epicenter.works logo" src="/static/img/logos/epicenterworks.png" /><br> epicenter.works </a>
</li>
<li class="logo-org">
<a href="https://itpol.dk/"> <img alt="IT-Politisk Forening logo" src="/static/img/logos/ITpollogo.png" /><br> IT-Politisk Forening </a>
</li>
<li class="logo-org">
<a href="http://nurpa.be/"> <img alt="NURPA logo" src="/static/img/logos/nurpa.png" /><br> Nurpa </a>
</li>
<li class="logo-org">
<a href="https://www.openrightsgroup.org/"> <img alt="ORG logo" src="/static/img/logos/org.png" /><br> Open Rights Group </a>
</li>
<li class="logo-org">
<a href="https://xnet-x.net"> <img alt="Xnet logo" src="/static/img/logos/Xnet.png" /><br> Xnet </a>
</li>
<li class="logo-org">
<a href="https://www.digitale-gesellschaft.ch"> <img alt="Digitale Gesellschaft logo" src="/static/img/digitale.png" /><br> Digitale Gesellschaft Schweiz</a>
</li>
</ul>
</div>
{% block footer %}
{% endblock %}
<div class="row">
<hr/>
</div>
<div class="row">
<div class="col-xs-10 col-xs-offset-1">
<p>Respect My Net is licenced under the <a rel="licence" href="https://www.gnu.org/licenses/agpl.html"><img src="https://www.gnu.org/graphics/agplv3-88x31.png">GNU Affero GPL v3.0+</a>, the code is available under the git repository <a href="https://git.laquadrature.net/la-quadrature-du-net/respect-my-net">https://git.laquadrature.net/la-quadrature-du-net/respect-my-net</a></p>
<p><a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/80x15.png" /></a>User submitted content (comments and cases) is licenced under the term of the <a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>, their original author needs to be credited.</p>
</div>
</div> </div>
</div> </div>
<script type="text/javascript" src="/static/js/tinymce/tinyMCE/tinymce.min.js"></script> </div>
<script type="text/javascript" src="/static/js/jquery.min.js"></script> </div>
<script type="text/javascript" src="/static/js/jquery-ui.min.js"></script> <div id="footer" class="container-fluid">
<script type="text/javascript" src="/static/js/jquery.tablesorter.js"> </script> <div class="row">
<script type="text/javascript" src="/static/js/jquery.tablesorter.widgets.js"></script> <div class="col-md-10 col-md-offset-1">
<script type="text/javascript" src="/static/js/picnet.table.filter.min.js"></script> <p style="padding:25px 5% 10px 5%;">{% trans "RespectMyNet.eu is an online platform enabling citizens to report net neutrality violations. Everyone is invited to report blocking or throttling of their Internet access or unfair discrimination between online services. This will help to shed light on those harmful practices and provide evidence to the telecom regulators to do their duty to defend the open and innovative Internet in Europe." %}</p>
<script type="text/javascript" src='/static/js/d3.min.js'></script> <ul>
<script type="text/javascript" src='/static/js/topojson.min.js'></script> <li class="logo-org">
<script type="text/javascript" src='/static/js/datamaps.js'></script> <a href="https://www.accessnow.org/"> <img alt="Access Now logo" src="/static/img/logos/accessnow.png" /><br> Access Now </a>
<script type="text/javascript" src="/static/js/nnmon.js"></script> </li>
<script type="text/javascript" src="/static/js/bootstrap.js"></script> <li class="logo-org">
{% block scripts %} <a href="https://www.laquadrature.net/"> <img alt="LQDN logo" src="/static/img/logos/la-quadrature-du-net.png" /><br> La Quadrature du Net </a>
{% endblock %} </li>
<li class="logo-org">
<a href="https://www.bof.nl/"> <img alt="BoF logo" src="/static/img/logos/Bits-of-Freedom.png" /><br> Bits of Freedom </a>
</li>
<li class="logo-org">
<a href="https://digitalegesellschaft.de"> <img alt="Digitale Gesellschaft logo" src="/static/img/logos/digitalegesellschaft.png" /><br> Digitale Gesellschaft </a>
</li>
<li class="logo-org">
<a href="https://edri.org/"> <img alt="EDRI logo" src="/static/img/logos/edri.png" /><br> European Digital Rights </a>
</li>
<li class="logo-org">
<a href="https://epicenter.works/"> <img alt="epicenter.works logo" src="/static/img/logos/epicenterworks.png" /><br> epicenter.works </a>
</li>
<li class="logo-org">
<a href="https://itpol.dk/"> <img alt="IT-Politisk Forening logo" src="/static/img/logos/ITpollogo.png" /><br> IT-Politisk Forening </a>
</li>
<li class="logo-org">
<a href="http://nurpa.be/"> <img alt="NURPA logo" src="/static/img/logos/nurpa.png" /><br> Nurpa </a>
</li>
<li class="logo-org">
<a href="https://www.openrightsgroup.org/"> <img alt="ORG logo" src="/static/img/logos/org.png" /><br> Open Rights Group </a>
</li>
<li class="logo-org">
<a href="https://xnet-x.net"> <img alt="Xnet logo" src="/static/img/logos/Xnet.png" /><br> Xnet </a>
</li>
<li class="logo-org">
<a href="https://www.digitale-gesellschaft.ch"> <img alt="Digitale Gesellschaft logo" src="/static/img/digitale.png" /><br> Digitale Gesellschaft Schweiz</a>
</li>
</ul>
</div>
</div>
{% block footer %}
{% endblock %}
<div class="row">
<hr/>
</div>
<div class="row">
<div class="col-xs-10 col-xs-offset-1">
<p>Respect My Net is licenced under the <a rel="licence" href="https://www.gnu.org/licenses/agpl.html"><img src="https://www.gnu.org/graphics/agplv3-88x31.png">GNU Affero GPL v3.0+</a>, the code is available under the git repository <a href="https://git.laquadrature.net/la-quadrature-du-net/respect-my-net">https://git.laquadrature.net/la-quadrature-du-net/respect-my-net</a></p>
<p><a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"><img alt="Creative Commons License" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/80x15.png" /></a>User submitted content (comments and cases) is licenced under the term of the <a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike 4.0 International License</a>, their original author needs to be credited.</p>
</div>
</div>
</div>
<script type="text/javascript" src="/static/js/tinymce/tinyMCE/tinymce.min.js"></script>
<script type="text/javascript" src="/static/js/jquery.min.js"></script>
<script type="text/javascript" src="/static/js/jquery-ui.min.js"></script>
<script type="text/javascript" src="/static/js/jquery.tablesorter.js"> </script>
<script type="text/javascript" src="/static/js/jquery.tablesorter.widgets.js"></script>
<script type="text/javascript" src="/static/js/picnet.table.filter.min.js"></script>
<script type="text/javascript" src='/static/js/d3.min.js'></script>
<script type="text/javascript" src='/static/js/topojson.min.js'></script>
<script type="text/javascript" src='/static/js/datamaps.js'></script>
<script type="text/javascript" src="/static/js/nnmon.js"></script>
<script type="text/javascript" src="/static/js/bootstrap.js"></script>
{% block scripts %}
{% endblock %}
</body> </body>
</html> </html>
...@@ -135,7 +135,7 @@ $("#btn_dismiss").click(function(event) { ...@@ -135,7 +135,7 @@ $("#btn_dismiss").click(function(event) {
<input type="email" id="email-{{ violation.pk }}" class="form-control" name="email" placeholder="Email"/> <input type="email" id="email-{{ violation.pk }}" class="form-control" name="email" placeholder="Email"/>
<input type="hidden" id="id-{{ violation.pk }}" value="{{ violation.pk }}" /> <input type="hidden" id="id-{{ violation.pk }}" value="{{ violation.pk }}" />
<div class="btn-group" role="group" aria-label="confirm-deny"> <div class="btn-group" role="group" aria-label="confirm-deny">
<button class="btn btn-success">{% trans "OK" %}</ button> <button class="btn btn-success">{% trans "OK" %}</button>
<button data-toggle="collapse" data-target="#info-{{ violation.pk}}" aria-expanded="false" aria-controls="info-{{ volation.pk }}" type="button" class="btn btn-danger" >{% trans "Cancel" %}</button> <button data-toggle="collapse" data-target="#info-{{ violation.pk}}" aria-expanded="false" aria-controls="info-{{ volation.pk }}" type="button" class="btn btn-danger" >{% trans "Cancel" %}</button>
</div> </div>
</div> </div>
...@@ -226,7 +226,6 @@ $("#btn_dismiss").click(function(event) { ...@@ -226,7 +226,6 @@ $("#btn_dismiss").click(function(event) {
<p>{% trans "Those are cases that might be similar to yours, please feel free to add your input on those cases instead of adding yours if they overlap." %}</p> <p>{% trans "Those are cases that might be similar to yours, please feel free to add your input on those cases instead of adding yours if they overlap." %}</p>
<dl id="modal-list"> <dl id="modal-list">
</dl> </dl>
</table>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" id="btn_dismiss" class="btn btn-default" data-dismiss="modal">{% trans "Dismiss" %}</button> <button type="button" id="btn_dismiss" class="btn btn-default" data-dismiss="modal">{% trans "Dismiss" %}</button>
......
...@@ -2,11 +2,10 @@ from django.conf.urls import patterns, include, url ...@@ -2,11 +2,10 @@ from django.conf.urls import patterns, include, url
from django.views.generic import TemplateView, RedirectView from django.views.generic import TemplateView, RedirectView
from django.conf import settings from django.conf import settings
from django.contrib import admin from django.contrib import admin
from bt import views as bt from bt import views as bt
from bt.feeds import RssSiteNewsFeed, AtomSiteNewsFeed from bt.feeds import RssSiteNewsFeed, AtomSiteNewsFeed
from bt.api import APIResource, OperatorResource from bt.api import APIResource, OperatorResource
from bt.admin import manager_site
api_resource = APIResource() api_resource = APIResource()
operator_api_resource = OperatorResource() operator_api_resource = OperatorResource()
...@@ -85,9 +84,6 @@ urlpatterns = patterns('', ...@@ -85,9 +84,6 @@ urlpatterns = patterns('',
bt.ViolationSearchView.as_view(template_name='search/search.html')), bt.ViolationSearchView.as_view(template_name='search/search.html')),
# Language switch # Language switch
url(r'^i18n/', include('django.conf.urls.i18n')), url(r'^i18n/', include('django.conf.urls.i18n')),
# Manager admin site
url(r'^manager/', manager_site.urls),
) )
if settings.DEV_SERVER == True: if settings.DEV_SERVER == True:
...@@ -95,4 +91,4 @@ if settings.DEV_SERVER == True: ...@@ -95,4 +91,4 @@ if settings.DEV_SERVER == True:
(r'^site_media/(?P<path>.*)$', (r'^site_media/(?P<path>.*)$',
'django.views.static.serve', 'django.views.static.serve',
{'document_root': settings.MEDIA_PATH}), {'document_root': settings.MEDIA_PATH}),
) )
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment