Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
memopol
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
32
Issues
32
List
Boards
Labels
Service Desk
Milestones
Merge Requests
6
Merge Requests
6
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Political Memory
memopol
Commits
b6432187
Commit
b6432187
authored
Aug 06, 2016
by
Nicolas Joyard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add theme list and detail pages
parent
772b90c5
Changes
47
Hide whitespace changes
Inline
Side-by-side
Showing
47 changed files
with
1521 additions
and
1 deletion
+1521
-1
memopol/filters.py
memopol/filters.py
+17
-0
memopol/fixtures/smaller_sample.json
memopol/fixtures/smaller_sample.json
+27
-0
memopol/tests/response_fixtures/DossiersTest.test_dossier_detail.content
...esponse_fixtures/DossiersTest.test_dossier_detail.content
+5
-0
memopol/tests/response_fixtures/DossiersTest.test_dossier_list.content
.../response_fixtures/DossiersTest.test_dossier_list.content
+5
-0
memopol/tests/response_fixtures/DossiersTest.test_dossier_search.content
...esponse_fixtures/DossiersTest.test_dossier_search.content
+5
-0
memopol/tests/response_fixtures/DossiersTest.test_dossier_search_noresults.content
...xtures/DossiersTest.test_dossier_search_noresults.content
+5
-0
memopol/tests/response_fixtures/DossiersTest.test_dossier_sorting.content
...sponse_fixtures/DossiersTest.test_dossier_sorting.content
+5
-0
memopol/tests/response_fixtures/GroupListTest.test_active_committees.content
...nse_fixtures/GroupListTest.test_active_committees.content
+5
-0
memopol/tests/response_fixtures/GroupListTest.test_active_delegations.content
...se_fixtures/GroupListTest.test_active_delegations.content
+5
-0
memopol/tests/response_fixtures/GroupListTest.test_active_parties.content
...sponse_fixtures/GroupListTest.test_active_parties.content
+5
-0
memopol/tests/response_fixtures/GroupListTest.test_all_committees.content
...sponse_fixtures/GroupListTest.test_all_committees.content
+5
-0
memopol/tests/response_fixtures/GroupListTest.test_all_delegations.content
...ponse_fixtures/GroupListTest.test_all_delegations.content
+5
-0
memopol/tests/response_fixtures/GroupListTest.test_all_parties.content
.../response_fixtures/GroupListTest.test_all_parties.content
+5
-0
memopol/tests/response_fixtures/GroupListTest.test_chambers.content
...sts/response_fixtures/GroupListTest.test_chambers.content
+5
-0
memopol/tests/response_fixtures/GroupListTest.test_country.content
...ests/response_fixtures/GroupListTest.test_country.content
+5
-0
memopol/tests/response_fixtures/RepresentativeListTest.test_filter_chamber.content
...xtures/RepresentativeListTest.test_filter_chamber.content
+5
-0
memopol/tests/response_fixtures/RepresentativeListTest.test_filter_country.content
...xtures/RepresentativeListTest.test_filter_country.content
+5
-0
memopol/tests/response_fixtures/RepresentativeListTest.test_filter_group.content
...fixtures/RepresentativeListTest.test_filter_group.content
+5
-0
memopol/tests/response_fixtures/RepresentativeListTest.test_filter_multiple.content
...tures/RepresentativeListTest.test_filter_multiple.content
+5
-0
memopol/tests/response_fixtures/RepresentativeListTest.test_filter_notfound.content
...tures/RepresentativeListTest.test_filter_notfound.content
+5
-0
memopol/tests/response_fixtures/RepresentativeListTest.test_filter_search.content
...ixtures/RepresentativeListTest.test_filter_search.content
+5
-0
memopol/tests/response_fixtures/RepresentativeListTest.test_page1_paginateby12_active_displaylist.content
...stTest.test_page1_paginateby12_active_displaylist.content
+5
-0
memopol/tests/response_fixtures/RepresentativeListTest.test_page1_paginateby12_all_displaylist.content
...eListTest.test_page1_paginateby12_all_displaylist.content
+5
-0
memopol/tests/response_fixtures/RepresentativeListTest.test_page1_paginateby12_displaylist_searchjoly.content
...st.test_page1_paginateby12_displaylist_searchjoly.content
+5
-0
memopol/tests/response_fixtures/RepresentativeListTest.test_page1_paginateby24_active_displaygrid.content
...stTest.test_page1_paginateby24_active_displaygrid.content
+5
-0
memopol/tests/response_fixtures/RepresentativeListTest.test_page1_paginateby24_all_displaygrid.content
...eListTest.test_page1_paginateby24_all_displaygrid.content
+5
-0
memopol/tests/response_fixtures/RepresentativeListTest.test_page2_paginateby12_displaylist.content
...ativeListTest.test_page2_paginateby12_displaylist.content
+5
-0
memopol/tests/response_fixtures/RepresentativeListTest.test_page2_paginateby24_displaylist.content
...ativeListTest.test_page2_paginateby24_displaylist.content
+5
-0
memopol/tests/response_fixtures/RepresentativeListTest.test_sorting.content
...onse_fixtures/RepresentativeListTest.test_sorting.content
+5
-0
memopol/tests/response_fixtures/ThemesTest.test_theme_detail.content
...ts/response_fixtures/ThemesTest.test_theme_detail.content
+356
-0
memopol/tests/response_fixtures/ThemesTest.test_theme_detail.metadata
...s/response_fixtures/ThemesTest.test_theme_detail.metadata
+3
-0
memopol/tests/response_fixtures/ThemesTest.test_theme_list.content
...ests/response_fixtures/ThemesTest.test_theme_list.content
+264
-0
memopol/tests/response_fixtures/ThemesTest.test_theme_list.metadata
...sts/response_fixtures/ThemesTest.test_theme_list.metadata
+3
-0
memopol/tests/response_fixtures/ThemesTest.test_theme_search.content
...ts/response_fixtures/ThemesTest.test_theme_search.content
+264
-0
memopol/tests/response_fixtures/ThemesTest.test_theme_search.metadata
...s/response_fixtures/ThemesTest.test_theme_search.metadata
+3
-0
memopol/tests/response_fixtures/ThemesTest.test_theme_search_noresults.content
...e_fixtures/ThemesTest.test_theme_search_noresults.content
+152
-0
memopol/tests/response_fixtures/ThemesTest.test_theme_search_noresults.metadata
..._fixtures/ThemesTest.test_theme_search_noresults.metadata
+3
-0
memopol/tests/test_themes.py
memopol/tests/test_themes.py
+57
-0
memopol/urls.py
memopol/urls.py
+12
-0
memopol/views/theme_detail.py
memopol/views/theme_detail.py
+15
-0
memopol/views/theme_list.py
memopol/views/theme_list.py
+30
-0
memopol_themes/migrations/0001_initial.py
memopol_themes/migrations/0001_initial.py
+3
-1
memopol_themes/models.py
memopol_themes/models.py
+3
-0
setup.py
setup.py
+1
-0
templates/_header.haml
templates/_header.haml
+3
-0
templates/memopol_themes/theme_detail.haml
templates/memopol_themes/theme_detail.haml
+132
-0
templates/memopol_themes/theme_list.haml
templates/memopol_themes/theme_list.haml
+38
-0
No files found.
memopol/filters.py
View file @
b6432187
...
@@ -11,6 +11,7 @@ from django_filters import FilterSet, MethodFilter, ModelChoiceFilter
...
@@ -11,6 +11,7 @@ from django_filters import FilterSet, MethodFilter, ModelChoiceFilter
from
representatives.models
import
Chamber
,
Group
,
Representative
from
representatives.models
import
Chamber
,
Group
,
Representative
from
representatives_votes.models
import
Dossier
from
representatives_votes.models
import
Dossier
from
memopol_themes.models
import
Theme
def
rep_chamber_filter
(
qs
,
value
):
def
rep_chamber_filter
(
qs
,
value
):
...
@@ -77,3 +78,19 @@ class DossierFilter(FilterSet):
...
@@ -77,3 +78,19 @@ class DossierFilter(FilterSet):
return
qs
.
filter
(
Q
(
title__icontains
=
value
)
|
return
qs
.
filter
(
Q
(
title__icontains
=
value
)
|
Q
(
reference__icontains
=
value
))
Q
(
reference__icontains
=
value
))
class
ThemeFilter
(
FilterSet
):
search
=
MethodFilter
(
action
=
'search_filter'
)
class
Meta
:
model
=
Theme
fields
=
[
'search'
]
def
search_filter
(
self
,
qs
,
value
):
if
len
(
value
)
==
0
:
return
qs
return
qs
.
filter
(
Q
(
name__icontains
=
value
)
|
Q
(
description__icontains
=
value
))
memopol/fixtures/smaller_sample.json
View file @
b6432187
...
@@ -23200,5 +23200,32 @@
...
@@ -23200,5 +23200,32 @@
},
},
"model": "representatives_recommendations.recommendation",
"model": "representatives_recommendations.recommendation",
"pk": 47
"pk": 47
},
{
"fields": {
"description": "The Anti-Counterfeiting Trade agreement is a really bad thing, we would like to kill it with fire.",
"positions": [
],
"proposals": [
5744, 5745, 5746
],
"dossiers": [
28147
],
"slug": "acta",
"name": "acta"
},
"model": "memopol_themes.theme",
"pk": 1
},
{
"fields": {
"theme": 1,
"datetime": "2008-01-01",
"link": "http://www.laquadrature.net",
"title": "Press release on ACTA from La Quadrature du Net"
},
"model": "memopol_themes.themelink",
"pk": 1
}
}
]
]
memopol/tests/response_fixtures/DossiersTest.test_dossier_detail.content
View file @
b6432187
...
@@ -65,6 +65,11 @@
...
@@ -65,6 +65,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/DossiersTest.test_dossier_list.content
View file @
b6432187
...
@@ -69,6 +69,11 @@
...
@@ -69,6 +69,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/DossiersTest.test_dossier_search.content
View file @
b6432187
...
@@ -69,6 +69,11 @@
...
@@ -69,6 +69,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/DossiersTest.test_dossier_search_noresults.content
View file @
b6432187
...
@@ -69,6 +69,11 @@
...
@@ -69,6 +69,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/DossiersTest.test_dossier_sorting.content
View file @
b6432187
...
@@ -69,6 +69,11 @@
...
@@ -69,6 +69,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/GroupListTest.test_active_committees.content
View file @
b6432187
...
@@ -65,6 +65,11 @@
...
@@ -65,6 +65,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/GroupListTest.test_active_delegations.content
View file @
b6432187
...
@@ -65,6 +65,11 @@
...
@@ -65,6 +65,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/GroupListTest.test_active_parties.content
View file @
b6432187
...
@@ -65,6 +65,11 @@
...
@@ -65,6 +65,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/GroupListTest.test_all_committees.content
View file @
b6432187
...
@@ -65,6 +65,11 @@
...
@@ -65,6 +65,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/GroupListTest.test_all_delegations.content
View file @
b6432187
...
@@ -65,6 +65,11 @@
...
@@ -65,6 +65,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/GroupListTest.test_all_parties.content
View file @
b6432187
...
@@ -65,6 +65,11 @@
...
@@ -65,6 +65,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/GroupListTest.test_chambers.content
View file @
b6432187
...
@@ -65,6 +65,11 @@
...
@@ -65,6 +65,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/GroupListTest.test_country.content
View file @
b6432187
...
@@ -65,6 +65,11 @@
...
@@ -65,6 +65,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/RepresentativeListTest.test_filter_chamber.content
View file @
b6432187
...
@@ -74,6 +74,11 @@
...
@@ -74,6 +74,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/RepresentativeListTest.test_filter_country.content
View file @
b6432187
...
@@ -74,6 +74,11 @@
...
@@ -74,6 +74,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/RepresentativeListTest.test_filter_group.content
View file @
b6432187
...
@@ -74,6 +74,11 @@
...
@@ -74,6 +74,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/RepresentativeListTest.test_filter_multiple.content
View file @
b6432187
...
@@ -74,6 +74,11 @@
...
@@ -74,6 +74,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/RepresentativeListTest.test_filter_notfound.content
View file @
b6432187
...
@@ -74,6 +74,11 @@
...
@@ -74,6 +74,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/RepresentativeListTest.test_filter_search.content
View file @
b6432187
...
@@ -74,6 +74,11 @@
...
@@ -74,6 +74,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/RepresentativeListTest.test_page1_paginateby12_active_displaylist.content
View file @
b6432187
...
@@ -74,6 +74,11 @@
...
@@ -74,6 +74,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/RepresentativeListTest.test_page1_paginateby12_all_displaylist.content
View file @
b6432187
...
@@ -74,6 +74,11 @@
...
@@ -74,6 +74,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/RepresentativeListTest.test_page1_paginateby12_displaylist_searchjoly.content
View file @
b6432187
...
@@ -74,6 +74,11 @@
...
@@ -74,6 +74,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/RepresentativeListTest.test_page1_paginateby24_active_displaygrid.content
View file @
b6432187
...
@@ -74,6 +74,11 @@
...
@@ -74,6 +74,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/RepresentativeListTest.test_page1_paginateby24_all_displaygrid.content
View file @
b6432187
...
@@ -74,6 +74,11 @@
...
@@ -74,6 +74,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/RepresentativeListTest.test_page2_paginateby12_displaylist.content
View file @
b6432187
...
@@ -74,6 +74,11 @@
...
@@ -74,6 +74,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/RepresentativeListTest.test_page2_paginateby24_displaylist.content
View file @
b6432187
...
@@ -74,6 +74,11 @@
...
@@ -74,6 +74,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/RepresentativeListTest.test_sorting.content
View file @
b6432187
...
@@ -74,6 +74,11 @@
...
@@ -74,6 +74,11 @@
Committees
Committees
</a>
</a>
</li>
</li>
<li>
<a
href=
'/theme/'
>
Themes
</a>
</li>
<li>
<li>
<a
href=
'/votes/dossier/'
>
<a
href=
'/votes/dossier/'
>
Dossiers
Dossiers
...
...
memopol/tests/response_fixtures/ThemesTest.test_theme_detail.content
0 → 100644
View file @
b6432187
<!DOCTYPE html>
<html
class=
"no-js"
lang=
"en"
>
<!--<![endif]-->
<head>
<meta
charset=
"utf-8"
/>
<link
rel=
"icon"
type=
"image/png"
href=
"/static/collected/img/favicon.ico"
/>
<!-- Set the viewport width to device width for mobile -->
<meta
name=
"viewport"
content=
"width=device-width"
/>
<title>
Home - Political Memory
</title>
<link
rel=
"stylesheet"
href=
"/static/collected/libs/bootstrap/dist/css/bootstrap.min.css"
type=
"text/css"
/><link
rel=
"stylesheet"
href=
"/static/collected/libs/fontawesome/css/font-awesome.min.css"
type=
"text/css"
/><link
rel=
"stylesheet"
href=
"/static/collected/libs/flag-icon-css/css/flag-icon.min.css"
type=
"text/css"
/><link
rel=
"stylesheet"
href=
"/static/collected/CACHE/css/base.586b8f5e9bff.css"
type=
"text/css"
/>
<script
type=
"text/javascript"
src=
"/static/collected/libs/jquery/dist/jquery.js"
></script>
<script
type=
"text/javascript"
src=
"/static/collected/libs/bootstrap/dist/js/bootstrap.js"
></script>
</head>
<body
>
<!-- -load memopol_tags cache -->
<div
id=
'header'
class=
'container-fluid'
>
<a
id=
'logo'
href=
'/'
>
<img
src=
'/static/collected/images/logo.png'
/>
</a>
<h1>
<a
id=
'header_banner'
href=
'/'
>
Political Memory
</a>
</h1>
<p
class=
'organization'
>
</p>
</div>
<div
id=
'nav'
class=
'container-fluid'
>
<ul
class=
'nav'
>
<li>
<a
href=
'/legislature/representative/'
>
Representatives
</a>
</li>
<li>
<a
href=
'/legislature/group/country/'
>
Countries
</a>
</li>
<li>
<a
href=
'/legislature/group/chamber/'
>
Chambers
</a>