Allow accompagnateurs to print a Dossier

This commit is contained in:
gregoirenovel 2017-10-05 23:27:02 +02:00
parent 38c226a659
commit 316d8e09b5
12 changed files with 169 additions and 1 deletions

View file

@ -0,0 +1 @@
<svg width="22" height="22" viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><title>ic_form</title><defs><rect id="a" x="3" y="8" width="18" height="7" rx="1"/><path d="M7 3h10a1 1 0 0 1 1 1v2H6V4a1 1 0 0 1 1-1z" id="b"/><path d="M0 0h12v6a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V0z" id="c"/></defs><g fill="none" fill-rule="evenodd"><path d="M-1-1h24v24H-1z"/><g transform="translate(-1 -1)"><use fill="#FFF" xlink:href="#a"/><rect stroke="#4393F3" stroke-width="2" x="2" y="7" width="20" height="9" rx="1"/></g><g transform="translate(-1 -1)"><use fill="#FFF" xlink:href="#b"/><path stroke="#4393F3" stroke-width="2" d="M7 2h10a2 2 0 0 1 2 2v3H5V4a2 2 0 0 1 2-2z"/></g><g transform="translate(5 13)"><use fill="#FFF" xlink:href="#c"/><path stroke="#4393F3" stroke-width="2" d="M-1-1h14v7a2 2 0 0 1-2 2H1a2 2 0 0 1-2-2v-7z"/><rect fill="#4393F3" x="1" y="4" width="6" height="1.5" rx=".75"/><rect fill="#4393F3" x="1" y="1.5" width="10" height="1.5" rx=".75"/></g></g></svg>

After

Width:  |  Height:  |  Size: 1,014 B

View file

@ -92,6 +92,10 @@
} }
} }
} }
&.icon-only i {
margin-right: 0;
}
} }
.dropdown-content { .dropdown-content {

View file

@ -56,4 +56,8 @@ i {
&.lock { &.lock {
background-image: image-url("icons/lock.svg"); background-image: image-url("icons/lock.svg");
} }
&.printer {
background-image: image-url("icons/printer.svg");
}
} }

View file

@ -7,3 +7,4 @@
// = require select2 // = require select2
// = require typeahead // = require typeahead
// = require_tree . // = require_tree .
// = stub "print"

View file

@ -0,0 +1,25 @@
@import "colors";
@import "fonts";
body {
font-family: "Muli";
}
.subtitle {
margin-top: -20px;
color: $grey;
}
th,
td {
vertical-align: top;
}
th {
text-align: left;
&.header-section {
padding-top: 1.2em;
font-size: 1.2em;
}
}

View file

@ -83,6 +83,11 @@ module NewGestionnaire
redirect_to annotations_privees_dossier_path(dossier.procedure, dossier) redirect_to annotations_privees_dossier_path(dossier.procedure, dossier)
end end
def print
@dossier = dossier
render layout: "print"
end
private private
def dossier def dossier

View file

@ -0,0 +1,18 @@
%html
%head
%meta{ "http-equiv": "Content-Type", content: "text/html; charset=UTF-8" }
%meta{ "http-equiv": "X-UA-Compatible", content: "IE=edge" }
%meta{ name: "viewport", content: "width=device-width, initial-scale=1" }
= csrf_meta_tags
%title
= t("dynamics.page_title")
= favicon_link_tag(image_url("favicons/16x16.png"), type: "image/png", sizes: "16x16")
= favicon_link_tag(image_url("favicons/32x32.png"), type: "image/png", sizes: "32x32")
= favicon_link_tag(image_url("favicons/96x96.png"), type: "image/png", sizes: "96x96")
= stylesheet_link_tag "new_design/print", media: "all"
%body
= yield

View file

@ -7,6 +7,8 @@
%li %li
= "Dossier nº #{dossier.id}" = "Dossier nº #{dossier.id}"
%div %div
= link_to print_dossier_path(dossier.procedure, dossier), target: "_blank", class: "button icon-only" do
%i.printer>
= render partial: "new_gestionnaire/procedures/dossier_actions", locals: { procedure: dossier.procedure, dossier: dossier, dossier_is_followed: current_gestionnaire&.follow?(dossier) } = render partial: "new_gestionnaire/procedures/dossier_actions", locals: { procedure: dossier.procedure, dossier: dossier, dossier_is_followed: current_gestionnaire&.follow?(dossier) }
= render partial: "state_button", locals: { dossier: dossier } = render partial: "state_button", locals: { dossier: dossier }
%ul.tabs %ul.tabs

View file

@ -0,0 +1,106 @@
%h1= "Dossier nº #{@dossier.id}"
%h1.subtitle= "Procédure : #{@dossier.procedure.libelle}"
%h2 Identité du demandeur
- if @dossier.entreprise.present?
= render partial: "identite_entreprise", locals: { entreprise: @dossier.entreprise }
- if @dossier.individual.present?
= render partial: "identite_individual", locals: { individual: @dossier.individual }
%h2 Formulaire
- champs = @dossier.ordered_champs.decorate
- if champs.any?
= render partial: "champs", locals: { champs: champs }
- if @dossier.procedure.use_api_carto
%h3 Cartographie
- if @dossier.quartier_prioritaires.any?
%h4 Quartiers prioritaires
%table
- @dossier.quartier_prioritaires.each do |q|
%tr
%td= q.nom
- if @dossier.cadastres.any?
%h4 Parcelles cadastrales
%table
- @dossier.cadastres.each do |p|
%tr
%td= "Parcelle n° #{p.numero} - Feuille #{p.code_arr} #{p.section} #{p.feuille}"
- if @dossier.procedure.cerfa_flag? || @dossier.types_de_piece_justificative.any?
%h3 Pièces jointes
%table
- if @dossier.procedure.cerfa_flag?
%tr
%th Formulaire :
%td
- if @dossier.cerfa_available?
Pièce fournie
- else
Pièce non fournie
- @dossier.procedure.types_de_piece_justificative.each do |type_de_piece_justificative|
%tr
%th= "#{type_de_piece_justificative.libelle} :"
%td
- pj = @dossier.retrieve_last_piece_justificative_by_type(type_de_piece_justificative.id)
- if pj.present?
Pièce fournie
- else
Pièce non fournie
%h2 Annotations privées
- if @dossier.ordered_champs_private.present?
%table
- @dossier.champs_private.each do |champ|
%tr
%th
= champ.libelle
%td
= champ.value
- else
Aucune annotation privée
%h2 Avis
- if @dossier.avis.present?
%table
- @dossier.avis.each do |avis|
%tr
%th
= "Avis de #{avis.email_to_display}"
- if avis.confidentiel?
(confidentiel)
%td
- if avis.answer.present?
= avis.answer
- else
En attente de réponse
- else
Aucun avis
%h2 Messagerie
%table
- @dossier.commentaires.each do |commentaire|
%tr
%th
= render partial: 'commentaire_issuer', locals: { commentaire: commentaire, current_gestionnaire: current_gestionnaire }
- if ![current_gestionnaire.email, @dossier.user.email, 'contact@tps.apientreprise.fr'].include?(commentaire.email)
(invité)
%br
= I18n.l(commentaire.created_at.localtime, format: 'le %d/%m/%Y à %H:%M')
%td
%p= sanitize(commentaire.body)
- if file = commentaire.piece_justificative
%br
= file.original_filename
%script{ type: "text/javascript" }
window.print();

View file

@ -15,6 +15,7 @@
%i.bubble %i.bubble
%i.attachment %i.attachment
%i.lock %i.lock
%i.printer
%h1 Formulaires %h1 Formulaires

View file

@ -8,4 +8,4 @@ Rails.application.config.assets.version = '1.0'
# Precompile additional assets. # Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added. # application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
Rails.application.config.assets.precompile += %w(print.css new_design/new_application.css new_design/application.js) Rails.application.config.assets.precompile += %w(print.css new_design/new_application.css new_design/print.css new_design/application.js)

View file

@ -258,6 +258,7 @@ Rails.application.routes.draw do
get 'position' get 'position'
end end
post 'avis' => 'dossiers#create_avis' post 'avis' => 'dossiers#create_avis'
get 'print' => 'dossiers#print'
end end
end end
end end