Skip to content
Extraits de code Groupes Projets

Comparer les révisions

Les modifications sont affichées comme si la révision source était fusionnée avec la révision cible. En savoir plus sur la comparaison des révisions.

Source

Sélectionner le projet cible
No results found

Cible

Sélectionner le projet cible
  • la-quadrature-du-net/memopol/memopol
  • lnclt/political_memory
  • arthur/political_memory
  • agrausem/political_memory
  • periode/memopol
  • Anthony/memopol
  • Porkepix/memopol
  • jaster/memopol
  • luxcem/memopol
  • TAlone/memopol
10 résultats
Afficher les modifications
Affichage de
avec 734 ajouts et 26243 suppressions
docs/img/score_formula.png

5,99 ko

......@@ -12,10 +12,13 @@ Contents:
:maxdepth: 2
usage
deployment
deploy-custom
administration
scores
api
development
hacker
setup_solr
Indices and tables
==================
......@@ -23,4 +26,3 @@ Indices and tables
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
Memopol Scores
~~~~~~~~~~~~~~
Score computation
=================
In Memopol, each representative has a score that shows how their votes match
the recommendations made by administrators on the instance. The total score
of a representative is the sum of their score on each dossier, which in turn is
the sum of their score on each proposal with a recommendation on the dossier.
Each recommendation made by administrators has a weight: a number that tells how
important a specific proposal is. When the representative vote on a proposal
matches the recommendation, their score on the proposal is set to +weight.
Otherwise, it is set to -weight.
Score decay parameters
======================
Memopol allows to set decay parameters so that older votes have a lower
importance in the total representative score. By default, those parameters are
set to values that disable the score decay, so that each vote contributes
identically to the total score no matter how old it is.
The formula used to compute score is the following:
.. image:: img/score_formula.png
Where:
* ``baseScore`` is the base score for the vote computed as explained above;
* ``voteAge`` is the age of the vote in days;
* ``decayNum`` and ``decayDenom`` define the decay rate;
* ``exponent`` define the steepness of the decay.
The corresponding parameters can be set from the Memopol administration
interface (Memopol Settings > Settings); settings keys are ``SCORE_DECAY_NUM``,
``SCORE_DECAY_DENOM``, ``SCORE_EXPONENT``. Additionnaly, the ``SCORE_DECIMALS``
parameter sets how many decimal places are visible when scores are displayed.
The default values for those settings disable score decay by setting
``SCORE_DECAY_NUM`` to 0, ``SCORE_DECAY_DENOM`` and ``SCORE_EXPONENT`` to 1.
If you want to use score decay, start by setting ``SCORE_DECAY_NUM`` to 1, and
``SCORE_DECAY_DENOM`` to the number of days you want votes to matter. The graph
below shows how a score of 1.0 will decay with a 1-year decay (the X axis is in
days).
.. image:: img/score_1year.png
Increasing ``SCORE_DECAY_DENOM`` will make votes matter longer. Here is the
same example but with a 10-year decay.
.. image:: img/score_10years.png
Increasing ``SCORE_EXPONENT`` instead will make the decay cutoff steeper. Here
is an example with a 1-year decay and the exponent set to 6.
.. image:: img/score_exp6.png
Increasing it dramatically will create a brutal cutoff; here is the same example
with the exponent set to 1000:
.. image:: img/score_exp1k.png
Setup Solr with Memopol
=======================
Solr is used to perform search in the data. Currently, it is used only for
reprensatative search autocomplete.
This howto will be based on the current stable version of Debian (jessie).
Installation on Debian Stable
-----------------------------
Solr is in the official repository of debian, you can install it launching::
# apt install solr-tomcat/stable
Package: solr-tomcat
Source: lucene-solr
Version: 3.6.2+dfsg-5
Installed-Size: 65,5 kB
Maintainer: Debian Java Maintainers <pkg-java-maintainers@lists.alioth.debian.org>
Depends: solr-common (= 3.6.2+dfsg-5), tomcat7
Conflicts: solr-jetty, solr-tomcat6
Homepage: http://lucene.apache.org
Section: java
Priority: optional
Download-Size: 8 598 B
APT-Sources: http://ftp.fr.debian.org/debian/ jessie/main amd64 Packages
Description: Enterprise search server based on Lucene3 - Tomcat integration
Solr is an open source enterprise search server based on the Lucene
Java search library, with XML/HTTP and JSON APIs, hit highlighting,
faceted search, caching, replication, and a web administration
interface. It runs in a Java servlet container such as Tomcat.
.
This package provides the Tomcat integration files for Solr.
By default, the solr server is listen on localhost:8080. Memopol is configured
to use this addess by default, in production. If you install a newer version of
Solr (6.5.1 is the latest release), you should update the settings.py::
HAYSTACK_CONNECTIONS = {
'default': {
'ENGINE': 'haystack.backends.solr_backend.SolrEngine',
'URL': 'http://127.0.0.1:8080/solr',
},
}
Configure Solr
---------------
You can use the default Solr configuration to use it, You just need to generate
the schema.xml file and copy it in `/etc/solr/`. To generate the schema.xml
file::
$ memopol build_solr_schema > schmema.xml
## Copy the schema.xml file into /etc/solr/conf
$ sudo cp schema.xml /etc/solr/conf/
## Restart tomcat
$ sudo /etc/init.d/tomcat7 restart
Last step, you need to build the index by using::
$ memopol rebuild_index
The solr is now setup and production ready.
Populate data in Solr
---------------------
Django-haystack plugin offers two ways to populate data. The first way is by
using a cron job to update the index, the other way is to use `Dango signals to
update / delete datas <https://django-haystack.readthedocs.io/en/v2.6.0/signal_processors.html>`_.
For now, Haystack is not configured to be used with Django signals. It is
necessary to add a cron job to update the index ::
$ memopol update_index
`More informations about cron with Solr <http://django-haystack.readthedocs.io/en/v2.6.0/searchindex_api.html?highlight=cron#keeping-the-index-fresh>`_
[
{
"fields": {
"code": "GB",
"name": "United Kingdom"
},
"model": "representatives.country",
"pk": 1218
},
{
"fields": {
"updated": "2015-12-27T16:05:08.207Z",
"last_name": "HONEYBALL",
"photo": "http://www.europarl.europa.eu/mepphoto/5846.jpg",
"created": "2015-12-27T16:05:08.207Z",
"gender": 1,
"remote_id": "5846",
"first_name": "Mary",
"cv": "",
"active": true,
"birth_place": "Weymouth",
"full_name": "Mary HONEYBALL",
"fingerprint": "81d9de63359e216376592338ae2f1638dd41e45f",
"birth_date": "1952-11-12",
"slug": "mary-honeyball"
},
"model": "representatives.representative",
"pk": 160
},
{
"fields": {
"email": "mary.honeyball@europarl.europa.eu",
"updated": "2015-12-27T16:05:08.423Z",
"representative": 160,
"kind": "official",
"created": "2015-12-27T16:05:08.423Z"
},
"model": "representatives.email",
"pk": 160
},
{
"fields": {
"url": "http://twitter.com/maryhoneyball",
"updated": "2015-12-27T16:05:08.425Z",
"representative": 160,
"kind": "twitter",
"created": "2015-12-27T16:05:08.425Z"
},
"model": "representatives.website",
"pk": 296
},
{
"fields": {
"url": "https://www.facebook.com/mhoneyball",
"updated": "2015-12-27T16:05:08.427Z",
"representative": 160,
"kind": "facebook",
"created": "2015-12-27T16:05:08.427Z"
},
"model": "representatives.website",
"pk": 297
},
{
"fields": {
"updated": "2015-12-27T16:03:31.046Z",
"name": "Committee on Employment and Social Affairs",
"created": "2015-12-27T16:03:31.046Z",
"kind": "committee",
"abbreviation": "EMPL",
"fingerprint": "7f0e6d2c3342dde2c6077e127a418a19e0e891bb"
},
"model": "representatives.group",
"pk": 3
},
{
"fields": {
"updated": "2015-12-27T16:03:31.100Z",
"name": "Committee on Legal Affairs",
"created": "2015-12-27T16:03:31.100Z",
"kind": "committee",
"abbreviation": "JURI",
"fingerprint": "bc1a051072a9f2caf7c5c7105bccd13834b4d89d"
},
"model": "representatives.group",
"pk": 9
},
{
"fields": {
"updated": "2015-12-27T16:03:31.388Z",
"name": "Committee on Culture and Education",
"created": "2015-12-27T16:03:31.388Z",
"kind": "committee",
"abbreviation": "CULT",
"fingerprint": "a169e2d7e6009d3c089e4de43c0f3e0fc312fca4"
},
"model": "representatives.group",
"pk": 20
},
{
"fields": {
"updated": "2015-12-27T16:03:31.402Z",
"name": "Group of the Progressive Alliance of Socialists and Democrats in the European Parliament",
"created": "2015-12-27T16:03:31.402Z",
"kind": "group",
"abbreviation": "SD",
"fingerprint": "729890eba3ce20f90808b32110871d1fe41b53b6"
},
"model": "representatives.group",
"pk": 21
},
{
"fields": {
"updated": "2015-12-27T16:03:31.510Z",
"name": "Committee on Industry, Research and Energy",
"created": "2015-12-27T16:03:31.510Z",
"kind": "committee",
"abbreviation": "ITRE",
"fingerprint": "17ff1a9fe036e400612c9153c1647a8258c34d63"
},
"model": "representatives.group",
"pk": 23
},
{
"fields": {
"updated": "2015-12-27T16:03:31.521Z",
"name": "Committee on Regional Development",
"created": "2015-12-27T16:03:31.521Z",
"kind": "committee",
"abbreviation": "REGI",
"fingerprint": "7a2a03e6d40e5af34f3dc6bccd8e1900e2de3abf"
},
"model": "representatives.group",
"pk": 24
},
{
"fields": {
"updated": "2015-12-27T16:03:31.768Z",
"name": "Committee on Economic and Monetary Affairs",
"created": "2015-12-27T16:03:31.768Z",
"kind": "committee",
"abbreviation": "ECON",
"fingerprint": "2da973401cd76bb56b36f3a9162cda13d2f2d8f3"
},
"model": "representatives.group",
"pk": 30
},
{
"fields": {
"updated": "2015-12-27T16:03:31.794Z",
"name": "United Kingdom",
"created": "2015-12-27T16:03:31.794Z",
"kind": "country",
"abbreviation": "GB",
"fingerprint": "94e7f4c5dc6d7ca1c8ceade3f5bf782b56f0b0de"
},
"model": "representatives.group",
"pk": 33
},
{
"fields": {
"updated": "2015-12-27T16:03:32.489Z",
"name": "Socialist Group in the European Parliament",
"created": "2015-12-27T16:03:32.489Z",
"kind": "group",
"abbreviation": "PSE",
"fingerprint": "53961127dd190ceb0568d2290e195570ed907164"
},
"model": "representatives.group",
"pk": 41
},
{
"fields": {
"updated": "2015-12-27T16:03:33.606Z",
"name": "Committee on the Environment, Public Health and Food Safety",
"created": "2015-12-27T16:03:33.606Z",
"kind": "committee",
"abbreviation": "ENVI",
"fingerprint": "9d81a89ff2836afbe40dc4109b085c00bf0b1fdd"
},
"model": "representatives.group",
"pk": 48
},
{
"fields": {
"updated": "2015-12-27T16:03:34.712Z",
"name": "Delegation for relations with South Africa",
"created": "2015-12-27T16:03:34.712Z",
"kind": "delegation",
"abbreviation": "",
"fingerprint": "6482a4de9bdda2ae85fb71f78de0cfd49441a0e6"
},
"model": "representatives.group",
"pk": 64
},
{
"fields": {
"updated": "2015-12-27T16:03:34.756Z",
"name": "Group of the Party of European Socialists",
"created": "2015-12-27T16:03:34.756Z",
"kind": "group",
"abbreviation": "PSE",
"fingerprint": "bdcddf45a869f242e80961303a719a3e0f29d795"
},
"model": "representatives.group",
"pk": 67
},
{
"fields": {
"updated": "2015-12-27T16:03:36.124Z",
"name": "Committee on Women's Rights and Gender Equality",
"created": "2015-12-27T16:03:36.124Z",
"kind": "committee",
"abbreviation": "FEMM",
"fingerprint": "07290c78bb6679e36a5413d2b8122ff4c1477889"
},
"model": "representatives.group",
"pk": 77
},
{
"fields": {
"updated": "2015-12-27T16:03:36.219Z",
"name": "Delegation to the EU-Turkey Joint Parliamentary Committee",
"created": "2015-12-27T16:03:36.219Z",
"kind": "delegation",
"abbreviation": "",
"fingerprint": "171567aaa5ebc7bbdcf3fa3b8a293f9ade40c03a"
},
"model": "representatives.group",
"pk": 79
},
{
"fields": {
"updated": "2015-12-27T16:03:37.137Z",
"name": "Delegation for relations with Canada",
"created": "2015-12-27T16:03:37.137Z",
"kind": "delegation",
"abbreviation": "",
"fingerprint": "e2ece7c8073aa5d8ed32a003ecb5989eb363fe95"
},
"model": "representatives.group",
"pk": 86
},
{
"fields": {
"updated": "2015-12-27T16:03:40.000Z",
"name": "Delegation to the Parliamentary Assembly of the Union for the Mediterranean",
"created": "2015-12-27T16:03:40.000Z",
"kind": "delegation",
"abbreviation": "",
"fingerprint": "25ea9a5e8434c4c550c2fa4d7d8b79769f5eb8c0"
},
"model": "representatives.group",
"pk": 97
},
{
"fields": {
"updated": "2015-12-27T16:03:42.041Z",
"name": "Delegation to the Euro-Mediterranean Parliamentary Assembly",
"created": "2015-12-27T16:03:42.041Z",
"kind": "delegation",
"abbreviation": "",
"fingerprint": "ae4f709686238bb59f0e8d3f1f1362d6c6777744"
},
"model": "representatives.group",
"pk": 101
},
{
"fields": {
"updated": "2015-12-27T16:03:47.768Z",
"name": "Delegation to the EU-Former Yugoslav Republic of Macedonia Joint Parliamentary Committee",
"created": "2015-12-27T16:03:47.768Z",
"kind": "delegation",
"abbreviation": "",
"fingerprint": "fe7cabd2bfa99251e4f9bb2d700ec2a1898c312b"
},
"model": "representatives.group",
"pk": 111
},
{
"fields": {
"updated": "2015-12-27T16:03:58.940Z",
"name": "Delegation for relations with Palestine",
"created": "2015-12-27T16:03:58.940Z",
"kind": "delegation",
"abbreviation": "",
"fingerprint": "6d1f6a5bcc43f05a7cfdee1d2bc7b0d0cc5db6dc"
},
"model": "representatives.group",
"pk": 121
},
{
"fields": {
"updated": "2015-12-27T16:04:34.387Z",
"name": "Delegation to the EU-Malta Joint Parliamentary Committee",
"created": "2015-12-27T16:04:34.387Z",
"kind": "delegation",
"abbreviation": "",
"fingerprint": "920d936c976ee2b6fff4ce760dfb154d926dc2d1"
},
"model": "representatives.group",
"pk": 141
},
{
"fields": {
"updated": "2015-12-27T16:04:50.770Z",
"name": "Delegation to the EU-Cyprus Joint Parliamentary Committee",
"created": "2015-12-27T16:04:50.770Z",
"kind": "delegation",
"abbreviation": "",
"fingerprint": "35588fd232a2f314c16242334bad5f5190b4efae"
},
"model": "representatives.group",
"pk": 150
},
{
"fields": {
"country": null,
"updated": "2015-12-27T16:03:05.604Z",
"fingerprint": "bc0c3668435accfa5da4479c80478fe68d15ddb1",
"name": "European Parliament",
"created": "2015-12-27T16:03:05.603Z"
},
"model": "representatives.constituency",
"pk": 1
},
{
"fields": {
"country": 1218,
"updated": "2015-12-27T16:11:32.621Z",
"fingerprint": "1fae044a475096192745808b5dfe00e8a04ce172",
"name": "Labour Party",
"created": "2015-12-27T16:03:38.998Z"
},
"model": "representatives.constituency",
"pk": 21
},
{
"fields": {
"updated": "2015-12-27T16:05:08.213Z",
"group": 77,
"end_date": "9999-12-31",
"created": "2015-12-27T16:05:08.213Z",
"role": "Member",
"representative": 160,
"fingerprint": "3e27ddc2a03ae3e46486559f18c6fa79f6f073fc",
"link": "",
"begin_date": "2014-07-01",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3287
},
{
"fields": {
"updated": "2015-12-27T16:05:08.218Z",
"group": 9,
"end_date": "9999-12-31",
"created": "2015-12-27T16:05:08.218Z",
"role": "Member",
"representative": 160,
"fingerprint": "4f954af920af7bd2d2fcf4032a7bf17ad256cfd6",
"link": "",
"begin_date": "2014-07-01",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3288
},
{
"fields": {
"updated": "2015-12-27T16:05:08.223Z",
"group": 20,
"end_date": "9999-12-31",
"created": "2015-12-27T16:05:08.223Z",
"role": "Substitute",
"representative": 160,
"fingerprint": "64725eafb08a172af88d6bfca27f1873e1e8e712",
"link": "",
"begin_date": "2014-07-08",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3289
},
{
"fields": {
"updated": "2015-12-27T16:05:08.229Z",
"group": 77,
"end_date": "2014-06-30",
"created": "2015-12-27T16:05:08.228Z",
"role": "Member",
"representative": 160,
"fingerprint": "bba85aa92d24693bc71de5c8a39c6954913cbdec",
"link": "",
"begin_date": "2012-01-19",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3290
},
{
"fields": {
"updated": "2015-12-27T16:05:08.233Z",
"group": 20,
"end_date": "2014-06-30",
"created": "2015-12-27T16:05:08.233Z",
"role": "Member",
"representative": 160,
"fingerprint": "87c6f21c59d89374f12671ea1eea7fb6f041bbce",
"link": "",
"begin_date": "2012-01-19",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3291
},
{
"fields": {
"updated": "2015-12-27T16:05:08.238Z",
"group": 9,
"end_date": "2014-06-30",
"created": "2015-12-27T16:05:08.238Z",
"role": "Substitute",
"representative": 160,
"fingerprint": "7e407006eb3066ee67b55b4573d176daeb9aef6c",
"link": "",
"begin_date": "2012-01-19",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3292
},
{
"fields": {
"updated": "2015-12-27T16:05:08.244Z",
"group": 77,
"end_date": "2012-01-18",
"created": "2015-12-27T16:05:08.244Z",
"role": "Member",
"representative": 160,
"fingerprint": "14e44f282c0e7c727e7d4d3419570c6cbbcde153",
"link": "",
"begin_date": "2009-07-16",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3293
},
{
"fields": {
"updated": "2015-12-27T16:05:08.248Z",
"group": 20,
"end_date": "2012-01-18",
"created": "2015-12-27T16:05:08.248Z",
"role": "Member",
"representative": 160,
"fingerprint": "bdd2841c54da20685855881b0d5ab2a533a48824",
"link": "",
"begin_date": "2009-07-16",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3294
},
{
"fields": {
"updated": "2015-12-27T16:05:08.253Z",
"group": 9,
"end_date": "2012-01-18",
"created": "2015-12-27T16:05:08.253Z",
"role": "Substitute",
"representative": 160,
"fingerprint": "b5dc7889c922b88d386d11cdb634c3858dd3ac27",
"link": "",
"begin_date": "2010-09-20",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3295
},
{
"fields": {
"updated": "2015-12-27T16:05:08.258Z",
"group": 24,
"end_date": "2010-09-19",
"created": "2015-12-27T16:05:08.258Z",
"role": "Substitute",
"representative": 160,
"fingerprint": "984397862c0a64e995ce1a0194726543f56fa017",
"link": "",
"begin_date": "2009-07-16",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3296
},
{
"fields": {
"updated": "2015-12-27T16:05:08.263Z",
"group": 23,
"end_date": "2009-07-13",
"created": "2015-12-27T16:05:08.263Z",
"role": "Member",
"representative": 160,
"fingerprint": "6c8e6e4b91cf18e09eca545a662d832f90238f86",
"link": "",
"begin_date": "2007-01-31",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3297
},
{
"fields": {
"updated": "2015-12-27T16:05:08.268Z",
"group": 20,
"end_date": "2009-07-13",
"created": "2015-12-27T16:05:08.268Z",
"role": "Substitute",
"representative": 160,
"fingerprint": "59213d472d4022edafa03dbf0a0c8164ae37fad2",
"link": "",
"begin_date": "2007-01-31",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3298
},
{
"fields": {
"updated": "2015-12-27T16:05:08.274Z",
"group": 77,
"end_date": "2009-07-13",
"created": "2015-12-27T16:05:08.274Z",
"role": "Substitute",
"representative": 160,
"fingerprint": "0e6f6ec034595c44a1e3404dd924215c8604c504",
"link": "",
"begin_date": "2007-01-31",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3299
},
{
"fields": {
"updated": "2015-12-27T16:05:08.279Z",
"group": 48,
"end_date": "2007-01-30",
"created": "2015-12-27T16:05:08.279Z",
"role": "Member",
"representative": 160,
"fingerprint": "8ba5d46442df153c17a6d691e99339db92d178e0",
"link": "",
"begin_date": "2007-01-15",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3300
},
{
"fields": {
"updated": "2015-12-27T16:05:08.284Z",
"group": 77,
"end_date": "2007-01-30",
"created": "2015-12-27T16:05:08.283Z",
"role": "Substitute",
"representative": 160,
"fingerprint": "b362be416369a5798a4f39e8c071ac5f6ad59ec1",
"link": "",
"begin_date": "2007-01-15",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3301
},
{
"fields": {
"updated": "2015-12-27T16:05:08.288Z",
"group": 20,
"end_date": "2007-01-30",
"created": "2015-12-27T16:05:08.288Z",
"role": "Substitute",
"representative": 160,
"fingerprint": "ffbb2ab83dd43369215c2d79bf9be177dbe247f6",
"link": "",
"begin_date": "2007-01-15",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3302
},
{
"fields": {
"updated": "2015-12-27T16:05:08.293Z",
"group": 48,
"end_date": "2007-01-14",
"created": "2015-12-27T16:05:08.293Z",
"role": "Member",
"representative": 160,
"fingerprint": "0cb7ee1883626dbd5228c279d5621327f271d786",
"link": "",
"begin_date": "2004-07-21",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3303
},
{
"fields": {
"updated": "2015-12-27T16:05:08.298Z",
"group": 77,
"end_date": "2007-01-14",
"created": "2015-12-27T16:05:08.298Z",
"role": "Substitute",
"representative": 160,
"fingerprint": "9db1fc8d28feeee3f7dc14136426fe26f3df8d3a",
"link": "",
"begin_date": "2004-07-21",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3304
},
{
"fields": {
"updated": "2015-12-27T16:05:08.302Z",
"group": 20,
"end_date": "2007-01-14",
"created": "2015-12-27T16:05:08.302Z",
"role": "Substitute",
"representative": 160,
"fingerprint": "a7ee142c48158483a12dc300e83e562f7552717f",
"link": "",
"begin_date": "2004-07-21",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3305
},
{
"fields": {
"updated": "2015-12-27T16:05:08.307Z",
"group": 30,
"end_date": "2004-07-19",
"created": "2015-12-27T16:05:08.307Z",
"role": "Member",
"representative": 160,
"fingerprint": "f7ab1b25eed25a6f577886d7ce2a89c5da877fab",
"link": "",
"begin_date": "2002-01-17",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3306
},
{
"fields": {
"updated": "2015-12-27T16:05:08.313Z",
"group": 3,
"end_date": "2002-01-14",
"created": "2015-12-27T16:05:08.313Z",
"role": "Substitute",
"representative": 160,
"fingerprint": "ed100b9f3db921cd180295391d416b49ed799641",
"link": "",
"begin_date": "2000-03-01",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3307
},
{
"fields": {
"updated": "2015-12-27T16:05:08.318Z",
"group": 64,
"end_date": "9999-12-31",
"created": "2015-12-27T16:05:08.318Z",
"role": "Member",
"representative": 160,
"fingerprint": "b64dc41dd0d357720738c7efb46849caf60ec14d",
"link": "",
"begin_date": "2014-07-14",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3308
},
{
"fields": {
"updated": "2015-12-27T16:05:08.322Z",
"group": 97,
"end_date": "9999-12-31",
"created": "2015-12-27T16:05:08.322Z",
"role": "Member",
"representative": 160,
"fingerprint": "c2b6824cf3b29f77da6fc7c02d29ff95f78c622c",
"link": "",
"begin_date": "2014-07-14",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3309
},
{
"fields": {
"updated": "2015-12-27T16:05:08.328Z",
"group": 121,
"end_date": "9999-12-31",
"created": "2015-12-27T16:05:08.328Z",
"role": "Substitute",
"representative": 160,
"fingerprint": "77ea8b27c3aac210c2352d9469cb5e5dccda681f",
"link": "",
"begin_date": "2014-07-14",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3310
},
{
"fields": {
"updated": "2015-12-27T16:05:08.332Z",
"group": 86,
"end_date": "2014-06-30",
"created": "2015-12-27T16:05:08.332Z",
"role": "Substitute",
"representative": 160,
"fingerprint": "f617bbbdcc14f0eb7e84fe80f63c9b127d8c6441",
"link": "",
"begin_date": "2009-09-16",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3311
},
{
"fields": {
"updated": "2015-12-27T16:05:08.337Z",
"group": 111,
"end_date": "2009-07-13",
"created": "2015-12-27T16:05:08.337Z",
"role": "Member",
"representative": 160,
"fingerprint": "e4b7462f237417fb7654725e63dc8ff6306d6f06",
"link": "",
"begin_date": "2004-09-15",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3312
},
{
"fields": {
"updated": "2015-12-27T16:05:08.342Z",
"group": 79,
"end_date": "2009-07-13",
"created": "2015-12-27T16:05:08.342Z",
"role": "Substitute",
"representative": 160,
"fingerprint": "76a4b0814908a0dc15fec2eadd18de8344902222",
"link": "",
"begin_date": "2004-09-15",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3313
},
{
"fields": {
"updated": "2015-12-27T16:05:08.348Z",
"group": 101,
"end_date": "2009-07-13",
"created": "2015-12-27T16:05:08.348Z",
"role": "Substitute",
"representative": 160,
"fingerprint": "8cfe1ab42ee6b094fb26aecfad5ca68bee37c307",
"link": "",
"begin_date": "2004-09-15",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3314
},
{
"fields": {
"updated": "2015-12-27T16:05:08.352Z",
"group": 150,
"end_date": "2004-04-30",
"created": "2015-12-27T16:05:08.352Z",
"role": "Member",
"representative": 160,
"fingerprint": "a3910f55303b76c08fdbb46be9707b71d20bc618",
"link": "",
"begin_date": "2002-02-07",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3315
},
{
"fields": {
"updated": "2015-12-27T16:05:08.357Z",
"group": 141,
"end_date": "2004-04-30",
"created": "2015-12-27T16:05:08.357Z",
"role": "Substitute",
"representative": 160,
"fingerprint": "8ed925d938dd2196228db9e8bfe9635c81e9c563",
"link": "",
"begin_date": "2002-02-07",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3316
},
{
"fields": {
"updated": "2015-12-27T16:05:08.363Z",
"group": 150,
"end_date": "2002-01-14",
"created": "2015-12-27T16:05:08.363Z",
"role": "Member",
"representative": 160,
"fingerprint": "e840b8192789f083b0ce07d04a850349ce3ce3fe",
"link": "",
"begin_date": "2000-04-11",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3317
},
{
"fields": {
"updated": "2015-12-27T16:05:08.368Z",
"group": 21,
"end_date": "9999-12-31",
"created": "2015-12-27T16:05:08.368Z",
"role": "Member",
"representative": 160,
"fingerprint": "e1521b961d18f8b2ed5254a6bdd0e90f32bb4481",
"link": "",
"begin_date": "2014-07-01",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3318
},
{
"fields": {
"updated": "2015-12-27T16:05:08.373Z",
"group": 21,
"end_date": "2014-06-30",
"created": "2015-12-27T16:05:08.373Z",
"role": "Member",
"representative": 160,
"fingerprint": "d97dfd44f2e19ea2a71af9c96c211db06fb1ff94",
"link": "",
"begin_date": "2009-07-14",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3319
},
{
"fields": {
"updated": "2015-12-27T16:05:08.378Z",
"group": 41,
"end_date": "2009-07-13",
"created": "2015-12-27T16:05:08.378Z",
"role": "Member",
"representative": 160,
"fingerprint": "c6ff4291f008ae6636765819ce203b1068cb77f5",
"link": "",
"begin_date": "2004-07-20",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3320
},
{
"fields": {
"updated": "2015-12-27T16:05:08.383Z",
"group": 67,
"end_date": "2004-07-19",
"created": "2015-12-27T16:05:08.383Z",
"role": "Member",
"representative": 160,
"fingerprint": "07e323ac8bfc7caf30b66966b9ffaf22104d02ad",
"link": "",
"begin_date": "2000-02-17",
"constituency": 1
},
"model": "representatives.mandate",
"pk": 3321
},
{
"fields": {
"updated": "2015-12-27T16:05:08.389Z",
"group": 33,
"end_date": "9999-12-31",
"created": "2015-12-27T16:05:08.389Z",
"role": "",
"representative": 160,
"fingerprint": "73c6575b59a2b165f5bd921aa1ae9a08d4a5b980",
"link": "",
"begin_date": "2014-07-01",
"constituency": 21
},
"model": "representatives.mandate",
"pk": 3322
},
{
"fields": {
"updated": "2015-12-27T16:05:08.395Z",
"group": 33,
"end_date": "2014-06-30",
"created": "2015-12-27T16:05:08.395Z",
"role": "",
"representative": 160,
"fingerprint": "1059f328912485c62db49fdc082d351dae775cea",
"link": "",
"begin_date": "2009-07-14",
"constituency": 21
},
"model": "representatives.mandate",
"pk": 3323
},
{
"fields": {
"updated": "2015-12-27T16:05:08.402Z",
"group": 33,
"end_date": "2009-07-13",
"created": "2015-12-27T16:05:08.402Z",
"role": "",
"representative": 160,
"fingerprint": "aca5e73cc97f7b3726ded9cf8b3c0aa3ad303485",
"link": "",
"begin_date": "2004-07-20",
"constituency": 21
},
"model": "representatives.mandate",
"pk": 3324
},
{
"fields": {
"updated": "2015-12-27T16:05:08.408Z",
"group": 33,
"end_date": "2004-07-19",
"created": "2015-12-27T16:05:08.408Z",
"role": "",
"representative": 160,
"fingerprint": "cca1fca42f5d43291fdc014126bc0b76f3c8ba14",
"link": "",
"begin_date": "2000-02-17",
"constituency": 21
},
"model": "representatives.mandate",
"pk": 3325
},
{
"fields": {
"updated": "2015-12-27T17:40:18.700Z",
"reference": "2010/2935(RSP)",
"title": "Resolution on the Anti-Counterfeiting Trade Agreement (ACTA)",
"text": "",
"created": "2015-12-27T17:40:18.700Z",
"link": "http://www.europarl.europa.eu/oeil/popups/ficheprocedure.do?reference=2010/2935(RSP)",
"fingerprint": "30ca011fd2991db0e6de50aef0d76e83530003a6"
},
"model": "representatives_votes.dossier",
"pk": 28147
},
{
"fields": {
"updated": "2015-12-27T18:03:52.645Z",
"total_for": 329,
"description": "",
"reference": "B7-0617/2010",
"title": "RC-B7-0617/2010 - Accord commercial anti-contrefa\u00e7on (ACAC) - Consid\u00e9rant X",
"dossier": 28147,
"created": "2015-12-27T17:53:17.771Z",
"kind": "Consid\u00e9rant X",
"datetime": "2010-11-24T11:48:48Z",
"total_against": 249,
"fingerprint": "d07e0a7f35d385a04fcff7ec08976bfa2d74a510",
"total_abstain": 75
},
"model": "representatives_votes.proposal",
"pk": 5744
},
{
"fields": {
"updated": "2015-12-27T18:03:53.335Z",
"total_for": 315,
"description": "",
"reference": "B7-0617/2010",
"title": "RC-B7-0617/2010 - Accord commercial anti-contrefa\u00e7on (ACAC) - Consid\u00e9rant CC",
"dossier": 28147,
"created": "2015-12-27T17:53:17.847Z",
"kind": "Consid\u00e9rant CC",
"datetime": "2010-11-24T11:49:01Z",
"total_against": 312,
"fingerprint": "c32565895a10dd6c145d56593ecc6e5ee8e6c69e",
"total_abstain": 14
},
"model": "representatives_votes.proposal",
"pk": 5745
},
{
"fields": {
"updated": "2015-12-27T18:03:53.999Z",
"total_for": 306,
"description": "",
"reference": "B7-0617/2010",
"title": "RC-B7-0617/2010 - Accord commercial anti-contrefa\u00e7on (ACAC) - R\u00e9solution",
"dossier": 28147,
"created": "2015-12-27T17:53:17.920Z",
"kind": "R\u00e9solution",
"datetime": "2010-11-24T11:49:18Z",
"total_against": 322,
"fingerprint": "be07f4680af54c8c43ea4ca19194fee88873c8cc",
"total_abstain": 26
},
"model": "representatives_votes.proposal",
"pk": 5746
},
{
"fields": {
"representative_name": "",
"position": "for",
"proposal": 5744,
"representative": 160
},
"model": "representatives_votes.vote",
"pk": 24758
},
{
"fields": {
"representative_name": "",
"position": "against",
"proposal": 5745,
"representative": 160
},
"model": "representatives_votes.vote",
"pk": 25246
},
{
"fields": {
"representative_name": "",
"position": "against",
"proposal": 5746,
"representative": 160
},
"model": "representatives_votes.vote",
"pk": 25535
},
{
"fields": {
"score": -7
},
"model": "representatives_recommendations.representativescore",
"pk": 160
},
{
"fields": {
"proposal": 5744,
"title": "Stop acta !",
"description": "",
"weight": 4,
"recommendation": "for"
},
"model": "representatives_recommendations.recommendation",
"pk": 45
},
{
"fields": {
"proposal": 5745,
"title": "Stop acta !",
"description": "",
"weight": 5,
"recommendation": "for"
},
"model": "representatives_recommendations.recommendation",
"pk": 46
},
{
"fields": {
"proposal": 5746,
"title": "Stop acta !",
"description": "",
"weight": 6,
"recommendation": "for"
},
"model": "representatives_recommendations.recommendation",
"pk": 47
},
{
"fields": {
"name": "acta",
"slug": "acta"
},
"model": "taggit.tag",
"pk": 1
},
{
"fields": {
"name": "foo",
"slug": "foo"
},
"model": "taggit.tag",
"pk": 2
},
{
"fields": {
"name": "bar",
"slug": "bar"
},
"model": "taggit.tag",
"pk": 3
},
{
"fields": {
"model": "position",
"app_label": "representatives_positions"
},
"model": "contenttypes.contenttype",
"pk": 25
},
{
"fields": {
"tag": 1,
"object_id": 1,
"content_type": 25
},
"model": "taggit.taggeditem",
"pk": 1
},
{
"fields": {
"tag": 2,
"object_id": 1,
"content_type": 25
},
"model": "taggit.taggeditem",
"pk": 2
},
{
"fields": {
"tag": 1,
"object_id": 3,
"content_type": 25
},
"model": "taggit.taggeditem",
"pk": 5
},
{
"fields": {
"tag": 1,
"object_id": 2,
"content_type": 25
},
"model": "taggit.taggeditem",
"pk": 6
},
{
"fields": {
"tag": 3,
"object_id": 2,
"content_type": 25
},
"model": "taggit.taggeditem",
"pk": 7
},
{
"fields": {
"representative": 160,
"datetime": "2010-11-24",
"text": "not-validated",
"link": "http://example.com/not-validated",
"published": false
},
"model": "representatives_positions.position",
"pk": 1
},
{
"fields": {
"representative": 160,
"datetime": "2010-11-24",
"text": "first-validated",
"link": "http://example.com/first-validated",
"published": true
},
"model": "representatives_positions.position",
"pk": 2
},
{
"fields": {
"representative": 160,
"datetime": "2010-11-24",
"text": "other-validated",
"link": "http://example.com/second-validated",
"published": true
},
"model": "representatives_positions.position",
"pk": 3
}
]
Impossible d'afficher diff de source : il est trop volumineux. Options pour résoudre ce problème : voir le blob.
<h2>Mandates</h2>
<table class='table table-condensed mandates'>
<tr class='mandate'>
<td>Member</td>
<td>
<a href='/legislature/representative/committee/Committee%20on%20Women&#39;s%20Rights%20and%20Gender%20Equality/'>
Committee on Women&#39;s Rights and Gender Equality
FEMM
</a>
</td>
<td>01/07/2014</td>
<td>present</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Member</td>
<td>
<a href='/legislature/representative/committee/Committee%20on%20Legal%20Affairs/'>
Committee on Legal Affairs
JURI
</a>
</td>
<td>01/07/2014</td>
<td>present</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Substitute</td>
<td>
<a href='/legislature/representative/committee/Committee%20on%20Culture%20and%20Education/'>
Committee on Culture and Education
CULT
</a>
</td>
<td>08/07/2014</td>
<td>present</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Member</td>
<td>
<a href='/legislature/representative/delegation/Delegation%20for%20relations%20with%20South%20Africa/'>
Delegation for relations with South Africa
</a>
</td>
<td>14/07/2014</td>
<td>present</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Member</td>
<td>
<a href='/legislature/representative/delegation/Delegation%20to%20the%20Parliamentary%20Assembly%20of%20the%20Union%20for%20the%20Mediterranean/'>
Delegation to the Parliamentary Assembly of the Union for the Mediterranean
</a>
</td>
<td>14/07/2014</td>
<td>present</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Substitute</td>
<td>
<a href='/legislature/representative/delegation/Delegation%20for%20relations%20with%20Palestine/'>
Delegation for relations with Palestine
</a>
</td>
<td>14/07/2014</td>
<td>present</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Member</td>
<td>
<a href='/legislature/representative/group/Group%20of%20the%20Progressive%20Alliance%20of%20Socialists%20and%20Democrats%20in%20the%20European%20Parliament/'>
Group of the Progressive Alliance of Socialists and Democrats in the European Parliament
SD
</a>
</td>
<td>01/07/2014</td>
<td>present</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td></td>
<td>
<a href='/legislature/representative/country/United%20Kingdom/'>
United Kingdom
GB
</a>
</td>
<td>01/07/2014</td>
<td>present</td>
<td>Labour Party</td>
</tr>
<tr class='mandate'>
<td>Member</td>
<td>
<a href='/legislature/representative/committee/Committee%20on%20Women&#39;s%20Rights%20and%20Gender%20Equality/'>
Committee on Women&#39;s Rights and Gender Equality
FEMM
</a>
</td>
<td>19/01/2012</td>
<td>30/06/2014</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Member</td>
<td>
<a href='/legislature/representative/committee/Committee%20on%20Culture%20and%20Education/'>
Committee on Culture and Education
CULT
</a>
</td>
<td>19/01/2012</td>
<td>30/06/2014</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Substitute</td>
<td>
<a href='/legislature/representative/committee/Committee%20on%20Legal%20Affairs/'>
Committee on Legal Affairs
JURI
</a>
</td>
<td>19/01/2012</td>
<td>30/06/2014</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Substitute</td>
<td>
<a href='/legislature/representative/delegation/Delegation%20for%20relations%20with%20Canada/'>
Delegation for relations with Canada
</a>
</td>
<td>16/09/2009</td>
<td>30/06/2014</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Member</td>
<td>
<a href='/legislature/representative/group/Group%20of%20the%20Progressive%20Alliance%20of%20Socialists%20and%20Democrats%20in%20the%20European%20Parliament/'>
Group of the Progressive Alliance of Socialists and Democrats in the European Parliament
SD
</a>
</td>
<td>14/07/2009</td>
<td>30/06/2014</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td></td>
<td>
<a href='/legislature/representative/country/United%20Kingdom/'>
United Kingdom
GB
</a>
</td>
<td>14/07/2009</td>
<td>30/06/2014</td>
<td>Labour Party</td>
</tr>
<tr class='mandate'>
<td>Member</td>
<td>
<a href='/legislature/representative/committee/Committee%20on%20Women&#39;s%20Rights%20and%20Gender%20Equality/'>
Committee on Women&#39;s Rights and Gender Equality
FEMM
</a>
</td>
<td>16/07/2009</td>
<td>18/01/2012</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Member</td>
<td>
<a href='/legislature/representative/committee/Committee%20on%20Culture%20and%20Education/'>
Committee on Culture and Education
CULT
</a>
</td>
<td>16/07/2009</td>
<td>18/01/2012</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Substitute</td>
<td>
<a href='/legislature/representative/committee/Committee%20on%20Legal%20Affairs/'>
Committee on Legal Affairs
JURI
</a>
</td>
<td>20/09/2010</td>
<td>18/01/2012</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Substitute</td>
<td>
<a href='/legislature/representative/committee/Committee%20on%20Regional%20Development/'>
Committee on Regional Development
REGI
</a>
</td>
<td>16/07/2009</td>
<td>19/09/2010</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Member</td>
<td>
<a href='/legislature/representative/committee/Committee%20on%20Industry,%20Research%20and%20Energy/'>
Committee on Industry, Research and Energy
ITRE
</a>
</td>
<td>31/01/2007</td>
<td>13/07/2009</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Substitute</td>
<td>
<a href='/legislature/representative/committee/Committee%20on%20Culture%20and%20Education/'>
Committee on Culture and Education
CULT
</a>
</td>
<td>31/01/2007</td>
<td>13/07/2009</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Substitute</td>
<td>
<a href='/legislature/representative/committee/Committee%20on%20Women&#39;s%20Rights%20and%20Gender%20Equality/'>
Committee on Women&#39;s Rights and Gender Equality
FEMM
</a>
</td>
<td>31/01/2007</td>
<td>13/07/2009</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Member</td>
<td>
<a href='/legislature/representative/delegation/Delegation%20to%20the%20EU-Former%20Yugoslav%20Republic%20of%20Macedonia%20Joint%20Parliamentary%20Committee/'>
Delegation to the EU-Former Yugoslav Republic of Macedonia Joint Parliamentary Committee
</a>
</td>
<td>15/09/2004</td>
<td>13/07/2009</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Substitute</td>
<td>
<a href='/legislature/representative/delegation/Delegation%20to%20the%20EU-Turkey%20Joint%20Parliamentary%20Committee/'>
Delegation to the EU-Turkey Joint Parliamentary Committee
</a>
</td>
<td>15/09/2004</td>
<td>13/07/2009</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Substitute</td>
<td>
<a href='/legislature/representative/delegation/Delegation%20to%20the%20Euro-Mediterranean%20Parliamentary%20Assembly/'>
Delegation to the Euro-Mediterranean Parliamentary Assembly
</a>
</td>
<td>15/09/2004</td>
<td>13/07/2009</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Member</td>
<td>
<a href='/legislature/representative/group/Socialist%20Group%20in%20the%20European%20Parliament/'>
Socialist Group in the European Parliament
PSE
</a>
</td>
<td>20/07/2004</td>
<td>13/07/2009</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td></td>
<td>
<a href='/legislature/representative/country/United%20Kingdom/'>
United Kingdom
GB
</a>
</td>
<td>20/07/2004</td>
<td>13/07/2009</td>
<td>Labour Party</td>
</tr>
<tr class='mandate'>
<td>Member</td>
<td>
<a href='/legislature/representative/committee/Committee%20on%20the%20Environment,%20Public%20Health%20and%20Food%20Safety/'>
Committee on the Environment, Public Health and Food Safety
ENVI
</a>
</td>
<td>15/01/2007</td>
<td>30/01/2007</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Substitute</td>
<td>
<a href='/legislature/representative/committee/Committee%20on%20Women&#39;s%20Rights%20and%20Gender%20Equality/'>
Committee on Women&#39;s Rights and Gender Equality
FEMM
</a>
</td>
<td>15/01/2007</td>
<td>30/01/2007</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Substitute</td>
<td>
<a href='/legislature/representative/committee/Committee%20on%20Culture%20and%20Education/'>
Committee on Culture and Education
CULT
</a>
</td>
<td>15/01/2007</td>
<td>30/01/2007</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Member</td>
<td>
<a href='/legislature/representative/committee/Committee%20on%20the%20Environment,%20Public%20Health%20and%20Food%20Safety/'>
Committee on the Environment, Public Health and Food Safety
ENVI
</a>
</td>
<td>21/07/2004</td>
<td>14/01/2007</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Substitute</td>
<td>
<a href='/legislature/representative/committee/Committee%20on%20Women&#39;s%20Rights%20and%20Gender%20Equality/'>
Committee on Women&#39;s Rights and Gender Equality
FEMM
</a>
</td>
<td>21/07/2004</td>
<td>14/01/2007</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Substitute</td>
<td>
<a href='/legislature/representative/committee/Committee%20on%20Culture%20and%20Education/'>
Committee on Culture and Education
CULT
</a>
</td>
<td>21/07/2004</td>
<td>14/01/2007</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Member</td>
<td>
<a href='/legislature/representative/committee/Committee%20on%20Economic%20and%20Monetary%20Affairs/'>
Committee on Economic and Monetary Affairs
ECON
</a>
</td>
<td>17/01/2002</td>
<td>19/07/2004</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Member</td>
<td>
<a href='/legislature/representative/group/Group%20of%20the%20Party%20of%20European%20Socialists/'>
Group of the Party of European Socialists
PSE
</a>
</td>
<td>17/02/2000</td>
<td>19/07/2004</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td></td>
<td>
<a href='/legislature/representative/country/United%20Kingdom/'>
United Kingdom
GB
</a>
</td>
<td>17/02/2000</td>
<td>19/07/2004</td>
<td>Labour Party</td>
</tr>
<tr class='mandate'>
<td>Member</td>
<td>
<a href='/legislature/representative/delegation/Delegation%20to%20the%20EU-Cyprus%20Joint%20Parliamentary%20Committee/'>
Delegation to the EU-Cyprus Joint Parliamentary Committee
</a>
</td>
<td>07/02/2002</td>
<td>30/04/2004</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Substitute</td>
<td>
<a href='/legislature/representative/delegation/Delegation%20to%20the%20EU-Malta%20Joint%20Parliamentary%20Committee/'>
Delegation to the EU-Malta Joint Parliamentary Committee
</a>
</td>
<td>07/02/2002</td>
<td>30/04/2004</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Substitute</td>
<td>
<a href='/legislature/representative/committee/Committee%20on%20Employment%20and%20Social%20Affairs/'>
Committee on Employment and Social Affairs
EMPL
</a>
</td>
<td>01/03/2000</td>
<td>14/01/2002</td>
<td>European Parliament</td>
</tr>
<tr class='mandate'>
<td>Member</td>
<td>
<a href='/legislature/representative/delegation/Delegation%20to%20the%20EU-Cyprus%20Joint%20Parliamentary%20Committee/'>
Delegation to the EU-Cyprus Joint Parliamentary Committee
</a>
</td>
<td>11/04/2000</td>
<td>14/01/2002</td>
<td>European Parliament</td>
</tr>
</table>
<div class='positions'>
<h2>Public positions</h2>
<table class='table table-condensed'>
<tr class='position'>
<td>24/11/2010</td>
<td>
<a href='/positions/position/2/'>
first-validated
</a>
</td>
<td>
<span class='label label-default'>
acta
</span>
<span class='label label-default'>
bar
</span>
</td>
<td>
<a href='http://example.com/first-validated'>
http://example.com/first-validated
</a>
</td>
</tr>
<tr class='position'>
<td>24/11/2010</td>
<td>
<a href='/positions/position/3/'>
other-validated
</a>
</td>
<td>
<span class='label label-default'>
acta
</span>
</td>
<td>
<a href='http://example.com/second-validated'>
http://example.com/second-validated
</a>
</td>
</tr>
<th>Score</th>
<td>
<span class="label label-danger">-7</span>
</td>
<h2 id='votes'>Votes</h2>
<table class='table table-condensed votes'>
<tr>
<th>Title</th>
<th class='icon-cell'>
Memopol recommendation
</th>
<th class='icon-cell'>
Representative vote
</th>
<th class='icon-cell'>
Score
</th>
</tr>
<tr>
<td>Stop acta !</td>
<td class='icon-cell'>
<i aria-label="for" class="fa fa-thumbs-up vote_positive" title="for" ></i>
</td>
<td class='icon-cell'>
<i aria-label="for" class="fa fa-thumbs-up vote_positive" title="for" ></i>
</td>
<td class='icon-cell'>
<span class="label label-success">4</span>
</td>
</tr>
<tr>
<td>Stop acta !</td>
<td class='icon-cell'>
<i aria-label="for" class="fa fa-thumbs-up vote_positive" title="for" ></i>
</td>
<td class='icon-cell'>
<i aria-label="against" class="fa fa-thumbs-down vote_negative" title="against" ></i>
</td>
<td class='icon-cell'>
<span class="label label-danger">-5</span>
</td>
</tr>
<tr>
<td>Stop acta !</td>
<td class='icon-cell'>
<i aria-label="for" class="fa fa-thumbs-up vote_positive" title="for" ></i>
</td>
<td class='icon-cell'>
<i aria-label="against" class="fa fa-thumbs-down vote_negative" title="against" ></i>
</td>
<td class='icon-cell'>
<span class="label label-danger">-6</span>
</td>
</tr>
</table>
import re
import os.path
from django.test import Client
class UrlGetTestMixin(object):
url = None
def setUp(self):
self.client = Client()
if not hasattr(type(self), 'response'):
# Do it once and for all, note that this also caches content types
# so the contenttype query used by taggit won't be counted in
# test_num_queries.
self.__class__.response = self.client.get(self.url)
self.response = self.__class__.response
def assertHtmlInResult(self, expected):
compare = re.sub('[\s"\']', '', expected)
result = re.sub('[\s"\']', '', self.response.content)
self.assertIn(compare, result)
def assertExpectedHtmlInResult(self):
"""
For test_votes_display, it is:
/positions/tests/test_representatives_detail_test_votes_display_expected.html
"""
expected = os.path.join(
os.path.dirname(__file__),
type(self).__name__,
'%s.html' % self._testMethodName
)
with open(expected, 'r') as f:
self.assertHtmlInResult(f.read())
# -*- coding: utf8 -*-
from django.test import TestCase
from .base import UrlGetTestMixin
class RepresentativeDetailTest(UrlGetTestMixin, TestCase):
fixtures = ['one_representative']
url = '/legislature/representative/mary-honeyball/'
def test_num_queries(self):
# Ensure one-time cached queries occur before the actual test
self.client.get(self.url)
with self.assertNumQueries(5):
"""
- One query for the rep details and foreign key (profile)
- One query for reverse relation on votes
- One query for reverse relation on mandates
- One query for reverse relation positions
- One query for reverse relation tags on positions
"""
self.client.get(self.url)
def test_name_display(self):
# When HAMLPY_ATTR_WRAPPER works, use double quotes in HTML attrs !
self.assertHtmlInResult("<h1 class='name'>Mary HONEYBALL</h1>")
def test_score_display(self):
self.assertExpectedHtmlInResult()
def test_country_display(self):
self.assertHtmlInResult(
'<span class="flag-icon flag-icon-gb"></span> United Kingdom')
def test_current_mandate_display(self):
expected = ''.join((
"<a href='/legislature/representative/group/Group%20of%20the%20Progressive%20Alliance%20of%20Socialists%20and%20Democrats%20in%20the%20European%20Parliament/'>", # noqa
"Member of Group of the Progressive Alliance of Socialists and Democrats in the European Parliament", # noqa
"</a>",
))
self.assertHtmlInResult(expected)
def test_biography_display(self):
self.assertHtmlInResult('Born in Weymouth the 12/11/1952 (F)')
def test_votes_display(self):
self.assertExpectedHtmlInResult()
def test_mandates_display(self):
self.assertExpectedHtmlInResult()
def test_positions_display(self):
self.assertExpectedHtmlInResult()
# -*- coding: utf8 -*-
from django.test import TestCase
from .base import UrlGetTestMixin
class RepresentativeListTest(UrlGetTestMixin, TestCase):
fixtures = ['smaller_sample.json']
url = '/legislature/representative/'
def test_num_queries(self):
with self.assertNumQueries(3):
"""
- A query on the session (for grid/list + pagination)
- A count for pagination
- One query for representative + score
- One query for mandates (country + main_mandate)
"""
self.client.get(self.url)
# coding: utf-8
from django.conf.urls import include, url
from django.contrib import admin
from django.views import generic
import views
admin.autodiscover()
urlpatterns = [
# Project-specific overrides
url(
r'^legislature/representative/(?P<group_kind>\w+)/(?P<group>.+)/$',
views.RepresentativeList.as_view(),
),
url(
r'^legislature/representative/(?P<slug>[-\w]+)/$',
views.RepresentativeDetail.as_view(),
),
url(
r'legislature/representative/$',
views.RepresentativeList.as_view(),
),
url(
r'votes/dossier/$',
views.DossierList.as_view(),
),
url(r'^autocomplete/', include('autocomplete_light.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'legislature/', include('representatives.urls',
namespace='representatives')),
url(r'votes/', include('representatives_votes.urls',
namespace='representatives_votes')),
url(r'positions/', include('representatives_positions.urls',
namespace='representatives_positions')),
url(r'^$', generic.TemplateView.as_view(template_name='home.html')),
]
# Project specific "glue" coupling of all apps
from django.db import models
from core.views import GridListMixin, PaginationMixin
from representatives import views as representatives_views
from representatives.models import Representative
from representatives_votes import views as representatives_votes_views
from representatives_votes.models import Dossier
from representatives_positions.forms import PositionForm
from representatives_recommendations.models import ScoredVote
class RepresentativeList(PaginationMixin, GridListMixin,
representatives_views.RepresentativeList):
queryset = Representative.objects.filter(
active=True).select_related('score')
class RepresentativeDetail(representatives_views.RepresentativeDetail):
queryset = Representative.objects.select_related('score')
def get_queryset(self):
qs = super(RepresentativeDetail, self).get_queryset()
votes = ScoredVote.objects.select_related('proposal__recommendation')
qs = qs.prefetch_related(models.Prefetch('votes', queryset=votes))
return qs
def get_context_data(self, **kwargs):
c = super(RepresentativeDetail, self).get_context_data(**kwargs)
c['position_form'] = PositionForm(
initial={'representative': self.object.pk})
self.add_representative_country_and_main_mandate(c['object'])
return c
class DossierList(PaginationMixin, representatives_votes_views.DossierList):
queryset = Dossier.objects.exclude(proposals__recommendation=None)
[pytest]
DJANGO_SETTINGS_MODULE=memopol.settings
addopts = --cov=. --create-db
addopts = --cov-config .coveragerc --cov=src --create-db
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
<title>Memopol</title>
<!-- Bootstrap core CSS -->
<link href="./css/bootstrap.min.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="./css/custom.css" rel="stylesheet">
<style>
</style>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container-fluid">
<!--div class="row custom-header">
<div class="col-sm-5">
<h1>[LOGO] Memopol</h1>
</div>
<div class="col-sm-7">
<p class="lead">What is Memopol ?</p>
<p>Memopol is a tool designed by La Quadrature du Net to help European citizens to reach members of European Parliament (MEPs) and track their voting records on issues related to fundamental freedoms online. </p>
<p class="text-right custom-plus"><a class="btn btn-sm btn-default"><span class="glyphicon glyphicon-plus"></span></a></p>
</div>
</div-->
<div class="row">
<div class="col-xs-12">
<!---------------------------------------------------------
NAV TAB
---------------------------------------------------------->
<ul class="nav nav-tabs nav-justified">
<li role="presentation"><a href="MEP-votes.html"><h3>Votes</h3></a></li>
<li role="presentation" class="active"><a href="MEP-mandates.html"><h3>Mandates</h3></a></li>
<li role="presentation"><a href="MEP-positions.html"><h3>Public positions</h3></a></li>
</ul>
<!---------------------------------------------------------
FIN DE LA NAV TAB
---------------------------------------------------------->
<br/>
<div class="row">
<div class="col-sm-6 col-md-4">
<!---------------------------------------------------------
MANDAT IMPORTANT
---------------------------------------------------------->
<div class="thumbnail">
<div class="caption">
<h3 class="text-center">Committee on Civil Liberties, Justice and Home Affairs</h3>
<hr>
<p class="lead text-center">Vice-Chair since July 7, 2014</p>
</div>
</div>
<!---------------------------------------------------------
FIN DU MANDAT IMPORTANT
---------------------------------------------------------->
<!---------------------------------------------------------
MANDAT PEU IMPORTANT
---------------------------------------------------------->
<div class="thumbnail">
<div class="caption">
<h5 class="text-center">Committee on an other topic that is not so interesting</h5>
<hr>
<p class="text-center">Member since July 7, 2014</p>
</div>
</div>
<!---------------------------------------------------------
FIN DU MANDAT PEU IMPORTANT
---------------------------------------------------------->
<!---------------------------------------------------------
MANDAT TERMINÉ
---------------------------------------------------------->
<div class="thumbnail mandat-fini">
<div class="caption">
<h5 class="text-center">Committee on an other topic that is not relevant anymore</h5>
<hr>
<p class="text-center">Member from July 7, 2014 to August 16, 2015</p>
</div>
</div>
<!---------------------------------------------------------
FIN DU MANDAT TERMINÉ
---------------------------------------------------------->
</div>
<div class="col-sm-6 col-md-4">
<!---------------------------------------------------------
MANDAT IMPORTANT
---------------------------------------------------------->
<div class="thumbnail">
<div class="caption">
<h3 class="text-center">Committee on Civil Liberties, Justice and Home Affairs</h3>
<hr>
<p class="lead text-center">Vice-Chair since July 7, 2014</p>
</div>
</div>
<!---------------------------------------------------------
FIN DU MANDAT IMPORTANT
---------------------------------------------------------->
<!---------------------------------------------------------
MANDAT TERMINÉ
---------------------------------------------------------->
<div class="thumbnail mandat-fini">
<div class="caption">
<h5 class="text-center">Committee on an other topic that is not relevant anymore</h5>
<hr>
<p class="text-center">Member from July 7, 2014 to August 16, 2015</p>
</div>
</div>
<!---------------------------------------------------------
FIN DU MANDAT TERMINÉ
---------------------------------------------------------->
</div>
<div class="col-sm-6 col-md-4">
<!---------------------------------------------------------
MANDAT PEU IMPORTANT
---------------------------------------------------------->
<div class="thumbnail">
<div class="caption">
<h5 class="text-center">Committee on an other topic that is not so interesting</h5>
<hr>
<p class="text-center">Member since July 7, 2014</p>
</div>
</div>
<!---------------------------------------------------------
FIN DU MANDAT PEU IMPORTANT
---------------------------------------------------------->
<!---------------------------------------------------------
MANDAT PEU IMPORTANT
---------------------------------------------------------->
<div class="thumbnail">
<div class="caption">
<h5 class="text-center">Committee on an other topic that is not so interesting</h5>
<hr>
<p class="text-center">Member since July 7, 2014</p>
</div>
</div>
<!---------------------------------------------------------
FIN DU MANDAT PEU IMPORTANT
---------------------------------------------------------->
<!---------------------------------------------------------
MANDAT TERMINÉ
---------------------------------------------------------->
<div class="thumbnail mandat-fini">
<div class="caption">
<h5 class="text-center">Committee on an other topic that is not relevant anymore</h5>
<hr>
<p class="text-center">Member from July 7, 2014 to August 16, 2015</p>
</div>
</div>
<!---------------------------------------------------------
FIN DU MANDAT TERMINÉ
---------------------------------------------------------->
</div>
</div>
</div>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="./js/bootstrap.min.js"></script>
<script src="./js/docs.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="./js/ie10-viewport-bug-workaround.js"></script>
<script>
$(function () {
$('[data-toggle="tooltip"]').tooltip()
})
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
<title>Memopol</title>
<!-- Bootstrap core CSS -->
<link href="./css/bootstrap.min.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="./css/custom.css" rel="stylesheet">
<style>
</style>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container-fluid">
<!--div class="row custom-header">
<div class="col-sm-5">
<h1>[LOGO] Memopol</h1>
</div>
<div class="col-sm-7">
<p class="lead">What is Memopol ?</p>
<p>Memopol is a tool designed by La Quadrature du Net to help European citizens to reach members of European Parliament (MEPs) and track their voting records on issues related to fundamental freedoms online. </p>
<p class="text-right custom-plus"><a class="btn btn-sm btn-default"><span class="glyphicon glyphicon-plus"></span></a></p>
</div>
</div-->
<div class="row">
<div class="col-xs-12">
<!---------------------------------------------------------
NAV TAB
---------------------------------------------------------->
<ul class="nav nav-tabs nav-justified">
<li role="presentation"><a href="MEP-votes.html"><h3>Votes</h3></a></li>
<li role="presentation"><a href="MEP-mandates.html"><h3>Mandates</h3></a></li>
<li role="presentation" class="active"><a href="MEP-positions.html"><h3>Public positions</h3></a></li>
</ul>
<!---------------------------------------------------------
FIN DE LA NAV TAB
---------------------------------------------------------->
</div>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="./js/bootstrap.min.js"></script>
<script src="./js/docs.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="./js/ie10-viewport-bug-workaround.js"></script>
<script>
$(function () {
$('[data-toggle="tooltip"]').tooltip()
})
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
<title>Memopol</title>
<!-- Bootstrap core CSS -->
<link href="./css/bootstrap.min.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="./css/custom.css" rel="stylesheet">
<style>
</style>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container-fluid">
<div class="row">
<div class="col-xs-12">
<!---------------------------------------------------------
NAV TAB
---------------------------------------------------------->
<ul class="nav nav-tabs nav-justified">
<li role="presentation"><a href="MEP-votes.html"><h3>Votes</h3></a></li>
<li role="presentation"><a href="MEP-mandates.html"><h3>Mandates</h3></a></li>
<li role="presentation"><a href="MEP-positions.html"><h3>Public positions</h3></a></li>
</ul>
<!---------------------------------------------------------
FIN DE LA NAV TAB
---------------------------------------------------------->
<p class="text-center"><br><br>Select a category to display the data.</p>
</div>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="./js/bootstrap.min.js"></script>
<script src="./js/docs.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="./js/ie10-viewport-bug-workaround.js"></script>
<script>
$(function () {
$('[data-toggle="tooltip"]').tooltip()
})
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="../../favicon.ico">
<title>Memopol</title>
<!-- Bootstrap core CSS -->
<link href="./css/bootstrap.min.css" rel="stylesheet">
<!-- Custom CSS -->
<link href="./css/custom.css" rel="stylesheet">
<style>
</style>
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div class="container-fluid">
<!--div class="row custom-header">
<div class="col-sm-5">
<h1>[LOGO] Memopol</h1>
</div>
<div class="col-sm-7">
<p class="lead">What is Memopol ?</p>
<p>Memopol is a tool designed by La Quadrature du Net to help European citizens to reach members of European Parliament (MEPs) and track their voting records on issues related to fundamental freedoms online. </p>
<p class="text-right custom-plus"><a class="btn btn-sm btn-default"><span class="glyphicon glyphicon-plus"></span></a></p>
</div>
</div-->
<div class="row">
<div class="col-xs-12">
<!---------------------------------------------------------
NAV TAB
---------------------------------------------------------->
<ul class="nav nav-tabs nav-justified">
<li role="presentation" class="active"><a href="MEP-votes.html"><h3>Votes</h3></a></li>
<li role="presentation"><a href="MEP-mandates.html"><h3>Mandates</h3></a></li>
<li role="presentation"><a href="MEP-positions.html"><h3>Public positions</h3></a></li>
</ul>
<!---------------------------------------------------------
FIN DE LA NAV TAB
---------------------------------------------------------->
<!---------------------------------------------------------
DOSSIERS
---------------------------------------------------------->
<p>Un peu de blabla ? Lorem ipsum...</p>
<div class="panel-group" id="accordion-Dossiers" role="tablist" aria-multiselectable="true">
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="Dossiers-headingOne">
<h4 class="panel-title">
<a role="button" data-toggle="collapse" data-parent="#accordion-Dossiers" href="#Dossiers-detailsOne" aria-expanded="false" aria-controls="Dossiers-detailsOne">
ACTA - Anti-Counterfeiting Trade Agreement
</a>
</h4>
</div>
<div id="Dossiers-detailsOne" class="panel-collapse collapse" role="tabpanel" aria-labelledby="Dossiers-headingOne">
<div class="panel-body">
<p>Lorem ipsum, un peu ce contexte...</p>
<a class="btn btn-default">En savoir plus &raquo;</a>
<br/><br/>
<table class="table table-striped table-hover text-center">
<thead>
<tr>
<th class="text-center">Vote name</th>
<th class="text-center">MEP's vote</th>
<th class="text-center">Party's vote</th>
<th class="text-center">Lqdn's recommendation</th>
<th class="text-center">Result</th>
<th class="text-center">Points</th>
</tr>
</thead>
<tbody>
<tr>
<th>Vote machin</th>
<td><span class="glyphicon glyphicon-ok text-success" title="recommendation: for"></span></td>
<td><span class="glyphicon glyphicon-ok text-success" title="recommendation: for"></span></td>
<td><span class="glyphicon glyphicon-ok" title="recommendation: for"></span></td>
<td>Accepted</td>
<td>10 <a data-toggle="tooltip" data-placement="top" title="Vote suivant notre recommendation sur un amendement."><span class="glyphicon glyphicon-info-sign"></span></a></td>
</tr>
<tr>
<th>Vote truc</th>
<td><span class="glyphicon glyphicon-remove text-danger"></td>
<td><span class="glyphicon glyphicon-remove text-danger"></td>
<td><span class="glyphicon glyphicon-ok" title="recommendation: for"></span></td>
<td>Rejected</td>
<td>-10</td>
</tr>
<tr>
<th>Vote chose</th>
<td><span class="glyphicon glyphicon-remove text-success"></span></td>
<td><span class="glyphicon glyphicon-ok text-danger"></span></td>
<td><span class="glyphicon glyphicon-remove" title="recommendation: against"></span></td>
<td>Accepted</td>
<td>20 <a data-toggle="tooltip" data-placement="top" title="Vote contre le groupe et suivant notre recommendation sur un amendement."><span class="glyphicon glyphicon-info-sign"></span></a></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="Dossiers-headingTwo">
<h4 class="panel-title">
<a class="collapsed" role="button" data-toggle="collapse" data-parent="#accordion-Dossiers" href="#Dossiers-detailsTwo" aria-expanded="false" aria-controls="Dossiers-detailsTwo">
Personnal Data Protection
</a>
</h4>
</div>
<div id="Dossiers-detailsTwo" class="panel-collapse collapse" role="tabpanel" aria-labelledby="Dossiers-headingTwo">
<div class="panel-body">
<p>Lorem ipsum, un peu ce contexte...</p>
<a class="btn btn-default">En savoir plus &raquo;</a>
<br/><br/>
<table class="table table-striped table-hover text-center">
<thead>
<tr>
<th class="text-center">Vote name</th>
<th class="text-center">MEP's vote</th>
<th class="text-center">Party's vote</th>
<th class="text-center">Lqdn's recommendation</th>
<th class="text-center">Points <a data-toggle="tooltip" data-placement="top" title="Le score est une somme de points attribués suivant si le MEP vote dans notre sens (positif) ou non (négatif) multiplié par le poids (importance) de ce vote."><span class="glyphicon glyphicon-info-sign"></span></a></th>
</tr>
</thead>
<tbody>
<tr>
<th>Vote machin</th>
<td><span class="glyphicon glyphicon-ok text-success" title="recommendation: for"></span></td>
<td><span class="glyphicon glyphicon-ok text-success" title="recommendation: for"></span></td>
<td><span class="glyphicon glyphicon-ok" title="recommendation: for"></span></td>
<td>20</td>
</tr>
<tr>
<th>Vote truc</th>
<td><span class="glyphicon glyphicon-remove text-danger"></td>
<td><span class="glyphicon glyphicon-remove text-danger"></td>
<td><span class="glyphicon glyphicon-ok" title="recommendation: for"></span></td>
<td>10</td>
</tr>
<tr>
<th>Vote chose</th>
<td><span class="glyphicon glyphicon-remove text-success"></span></td>
<td><span class="glyphicon glyphicon-ok text-danger"></span></td>
<td><span class="glyphicon glyphicon-remove" title="recommendation: against"></span></td>
<td>15</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<!---------------------------------------------------------
FIN DES DOSSIERS
---------------------------------------------------------->
</div>
</div>
</div>
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="./js/bootstrap.min.js"></script>
<script src="./js/docs.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="./js/ie10-viewport-bug-workaround.js"></script>
<script>
$(function () {
$('[data-toggle="tooltip"]').tooltip()
})
</script>
</body>
</html>