Пример #1
0
def homepage(request):
    deputes = Depute.objects.filter(actif=True).order_by(
        Lower('nom'), 'prenom')
    return HttpResponse(
        template([
            raw("""
		<div class="alert alert-dismissible alert-info">
		  <p>Ce site permet de retrouver facilement les votes de vos députés</p>
		  <p>Vous pouvez trouver votre député par circonscription sur
		  	 <a href="https://www.nosdeputes.fr/circonscription" class="alert-link">NosDéputés.fr</a></p>
		</div>
		"""),
            L.p / L.a(href="/deputes/inactifs") /
            L.button(".btn.btn-warning") / "voir députés inactifs",
            L.h2 / ["Députés ", L.small(".text-muted") / " actifs"],
            L.div(".list-group") / [
                L.
                a(".list-group-item.list-group-item-action.flex-column.align-items-start",
                  href=dep.url()) / [
                      L.div(".d-flex.w-100.justify-content-between") / [
                          L.h5(".mb-1") / f"{dep.nom}, {dep.prenom}",
                          L.small / f"{dep.groupe}"
                      ]
                  ] for dep in deputes
            ],
        ]))
Пример #2
0
def depute(request, dep_id):
    dep = Depute.objects.get(identifiant=dep_id)
    dossiers = Dossier.objects.filter(
        date_promulgation__isnull=False).order_by("-date_promulgation",
                                                  "titre")
    return HttpResponse(
        template([
            _render_breadcrumb([dep]), L.p / (
                L.a(href=dep.url() + "/lois-en-cours") /
                L.button(".btn.btn-warning") / "voir lois en cours",
                ' ',
                L.a(href=dep.url() + "/autres-votes") /
                L.button(".btn.btn-warning") / "voir autres votes",
            ), L.h2 / ["Lois", L.small(".text-muted") / " promulguées"],
            L.div(".list-group") / [
                L.
                a(".list-group-item.list-group-item-action.flex-column.align-items-start",
                  href=dos.url(dep)) / [
                      L.div(".d-flex.w-100.justify-content-between") / [
                          L.h5(".mb-1") / dos.titre,
                          _display_depute_vote(dos, dep),
                      ]
                  ] for dos in dossiers
            ]
        ]))
Пример #3
0
def deputes_inactifs(request):
    deputes_inactifs = Depute.objects.filter(actif=False).order_by(
        Lower('nom'), 'prenom')
    return HttpResponse(
        template([
            L.h2 /
            ["Députés ", L.small(".text-muted") / " inactifs"],
            L.div(".list-group") / [
                L.
                a(".list-group-item.list-group-item-action.flex-column.align-items-start",
                  href=dep.url()) / [
                      L.div(".d-flex.w-100.justify-content-between") / [
                          L.h5(".mb-1") / f"{dep.nom}, {dep.prenom}",
                          L.small / f"{dep.groupe}"
                      ]
                  ] for dep in deputes_inactifs
            ]
        ]))
Пример #4
0
def lois_en_cours(request, dep_id):
    dep = Depute.objects.get(identifiant=dep_id)
    dossiers = Dossier.objects.filter(date_promulgation__isnull=True)
    return HttpResponse(
        template([
            _render_breadcrumb([dep, 'Lois en cours']), L.h2 /
            ["Lois", L.small(".text-muted") / " en cours d'étude"],
            L.div(".list-group") / [
                L.
                a(".list-group-item.list-group-item-action.flex-column.align-items-start",
                  href=dos.url(dep)) / [
                      L.div(".d-flex.w-100.justify-content-between") / [
                          L.h5(".mb-1") / dos.titre,
                          _display_depute_vote(dos, dep),
                      ]
                  ] for dos in dossiers
            ]
        ]))
Пример #5
0
def autres_votes(request, dep_id):
    dep = Depute.objects.get(identifiant=dep_id)
    scrutins = Scrutin.objects.filter(dossier__isnull=True, etape__isnull=True)
    return HttpResponse(
        template([
            _render_breadcrumb([dep, 'Autres votes']), L.h2 / [
                "Autres votes",
            ],
            L.div(".list-group") / [
                L.
                a(".list-group-item.list-group-item-action.flex-column.align-items-start",
                  href=dep.url() + '/scrutin/' + str(scrutin.id)) / [
                      L.div(".d-flex.w-100.justify-content-between") / [
                          L.h5(".mb-1") / scrutin.objet,
                          _display_scrutin_vote(dep, scrutin),
                      ]
                  ] for scrutin in scrutins
            ]
        ]))
Пример #6
0
def depute_dossier(request, dep_id, dos_id):
    dep = Depute.objects.get(identifiant=dep_id)
    dos = Dossier.objects.get(identifiant=dos_id)
    etapes = Etape.objects.filter(dossier=dos).order_by("-date")
    return HttpResponse(
        template([
            _render_breadcrumb([dep, dos]), L.p / L.a(href=dos.url_an()) /
            L.button(".btn.btn-info") / "dossier législatif", L.h2 / [
                "Étapes",
            ],
            L.div(".list-group") / [
                L.
                a(".list-group-item.list-group-item-action.flex-column.align-items-start",
                  href=etape.url(dep)) / [
                      L.div(".d-flex.w-100.justify-content-between") / [
                          L.h5(".mb-1") / etape.titre,
                          _display_etape_vote(etape, dep),
                      ]
                  ] for etape in etapes
            ]
        ]))
Пример #7
0
def depute_etape(request, dep_id, etape_id):
    dep = Depute.objects.get(identifiant=dep_id)
    etape = Etape.objects.get(identifiant=etape_id)
    dos = etape.dossier
    try:
        scrutin = etape.scrutin_set.filter(dossier__isnull=True,
                                           article__isnull=True).first()
    except:
        scrutin = None
    articles = etape.scrutin_set.values_list(
        'article', flat=True).order_by('article').distinct()
    articles = [a for a in articles if a]
    articles.sort(key=_sort_articles)

    scrutins_amendements = etape.scrutin_set.filter(dossier=dos, etape=etape)

    return HttpResponse(
        template([
            _render_breadcrumb([dep, dos, etape]),
            (L.span('.badge.badge-info') / (
                'Le ',
                scrutin.date,
                (' ', scrutin.heure) if scrutin.heure else None,
            ), ) if scrutin else None,
            L.p / ((
                ' ',
                L.a(href=scrutin.url_an) / L.button(".btn.btn-info") /
                f'Scrutin',
                (
                    ' ',
                    L.a(href=scrutin.url_video) / L.button(".btn.btn-info") /
                    "video du  vote",
                ) if scrutin.url_video else None,
                (
                    ' ',
                    L.a(href=scrutin.url_CR) / L.button(".btn.btn-info") /
                    "compte-rendu",
                ) if scrutin.url_CR else None,
            ) if scrutin else None),
            (L.h2 / ["Articles", L.small(".text-muted") / " votés"],
             L.div(".list-group") / [
                 L.
                 a(".list-group-item.list-group-item-action.flex-column.align-items-start",
                   href="/" + dep.identifiant + "/etape/" + etape.identifiant +
                   "/article/" + article) / [
                       L.div(".d-flex.w-100.justify-content-between") / [
                           L.h5(".mb-1") / f"Article {article}",
                           _display_article_vote(etape, dep, article),
                       ]
                   ] for article in articles
             ]) if articles else None,
            (L.br, L.br, L.h2 / [
                "Amendements et motions",
                L.small(".text-muted") / " votés"
            ], L.div(".list-group") / [
                L.
                a(".list-group-item.list-group-item-action.flex-column.align-items-start",
                  href="/" + dep.identifiant + "/scrutin/" +
                  str(amdt_scrutin.id)) / [
                      L.div(".d-flex.w-100.justify-content-between") / [
                          L.h5(".mb-1") / f"{amdt_scrutin.objet}",
                          _display_scrutin_vote(dep, amdt_scrutin),
                      ]
                  ] for amdt_scrutin in scrutins_amendements
            ]) if scrutins_amendements.count() else None,
        ]))