[intranet/impression, lib/impression_canon] modifications de l'AJAX

Ignore-this: 8beebdd91330205ba08932d269ccb6b
 * Ajout de l'option livret
 * agra{f,ph}es -> agrafage
 * paper -> papier
 * True & False au lieu d'utiliser des noms de constantes à rallonge

darcs-hash:20090516014010-bd074-69a54cc50369c5351542a7b82ddf6b5215e421d1.gz
This commit is contained in:
Antoine Durand-Gasselin 2009-05-16 03:40:10 +02:00
parent fdfd2254d3
commit d87c41e637
4 changed files with 50 additions and 36 deletions

View file

@ -172,11 +172,12 @@ class main(ModuleBase):
# #
# methode pour changer les parametres # methode pour changer les parametres
# #
def changeSettings(self, copies=None, couleurs=None, recto_verso=None, agrafes=None, papier=None): def changeSettings(self, copies=None, couleur=None, recto_verso=None, agrafage=None, papier=None, livret=None):
if not cherrypy.session.has_key('impression') or cherrypy.session['impression'] == None : if not cherrypy.session.has_key('impression') or cherrypy.session['impression'] == None :
return {'nouvPrix':0.0} return {'nouvPrix':0.0}
try: try:
nouvPrix = cherrypy.session['impression'].changeSettings(papier=papier, couleurs=couleurs, agraphes=agrafes, recto_verso=recto_verso, copies=int(copies)) nouvPrix = cherrypy.session['impression'].changeSettings(papier=papier, couleur=couleur, agrafage=agrafage, recto_verso=recto_verso, copies=int(copies), livret=livret)
crans.cp.log("changeSettings returns : %s" % str(nouvPrix))
except Exception, e: except Exception, e:
crans.cp.log("changeSettings : %s" % str(e), 'IMPRESSION', 1) crans.cp.log("changeSettings : %s" % str(e), 'IMPRESSION', 1)
return {"erreur":str(e)} return {"erreur":str(e)}

View file

@ -129,6 +129,7 @@ Impression.settings.disableField = function(afield) {
// //
Impression.settings.update = function () { Impression.settings.update = function () {
var orientation = "portrait"; var orientation = "portrait";
Impression.settings.livret="False"
if (this.theform.type_impression_couleur.checked) if (this.theform.type_impression_couleur.checked)
this.getValue(this.theform.type_impression_couleur); this.getValue(this.theform.type_impression_couleur);
else else
@ -139,22 +140,25 @@ Impression.settings.update = function () {
else if (this.theform.disposition_recto_verso.checked) else if (this.theform.disposition_recto_verso.checked)
this.getValue(this.theform.disposition_recto_verso); this.getValue(this.theform.disposition_recto_verso);
else else
this.getValue(this.theform.disposition_recto_verso_short); {
this.getValue(this.theform.papier); this.getValue(this.theform.disposition_livret);
Impression.settings.livret="True";
}
this.getValue(this.theform.papier);
this.getCopies(this.theform.nb_copies); this.getCopies(this.theform.nb_copies);
this.getValue(this.theform.agrafes); this.getValue(this.theform.agrafage);
// Contraintes // Contraintes
if ( if (
( this.papier != "A4" ) || /* ( this.papier != "A4" ) || */
( (this.disposition == "recto") && (this.nb_pages>50) ) || ( (this.disposition == "recto") && (this.nb_pages>50) ) ||
( (this.disposition == "rectoverso") && (this.nb_pages>100) ) || ( (this.disposition == "rectoverso") && (this.nb_pages>100) )
( (this.disposition == "rectoversoshort") && (this.nb_pages>100) )) )
{ {
this.setValue(this.theform.agrafes, "pasdagraphes"); this.setValue(this.theform.agrafage, "None");
this.disableField(this.theform.agrafes); this.disableField(this.theform.agrafage);
this.getValue(this.theform.agrafes); this.getValue(this.theform.agrafage);
} else { } else {
this.setDisableField(this.theform.agrafes, false); this.setDisableField(this.theform.agrafage, false);
} }
if (this.papier == "A4tr") if (this.papier == "A4tr")
{ {
@ -317,11 +321,12 @@ Impression.AJAX.analysefini = function(AJAXResp)
Impression.AJAX.recalcPrix = function() Impression.AJAX.recalcPrix = function()
{ {
settings = Impression.settings; settings = Impression.settings;
var url = "changeSettings?copies=" + settings.copies var url = "changeSettings?copies=" + settings.copies
+"&couleurs="+ settings.type_impression +"&couleur="+ settings.type_impression
+"&papier="+ settings.papier +"&papier="+ settings.papier
+"&recto_verso="+ settings.disposition +"&recto_verso="+ settings.disposition
+"&agrafes="+ settings.agrafes; +"&agrafage="+ settings.agrafage
+"&livret="+ settings.livret;
this.modifPrix("Calcul en cours", true); this.modifPrix("Calcul en cours", true);
this.call(url, this.changePrix); this.call(url, this.changePrix);
} }

View file

@ -19,10 +19,10 @@ Crans.messages.setMessage('$errorMsg.replace("\'","\\\'")', 'errorMessage')
<div id="rightColumn"> <div id="rightColumn">
<fieldset><legend>Type d'impression</legend> <fieldset><legend>Type d'impression</legend>
<label for="type_impression_couleur" class="labelRadio compact"> <label for="type_impression_couleur" class="labelRadio compact">
<input type="radio" name="type_impression" id="type_impression_couleur" class="inputRadio" value="$crans.impression.IMPRESSION_COULEUR" checked="checked" onclick="Impression.settings.update(this);" /> <input type="radio" name="type_impression" id="type_impression_couleur" class="inputRadio" value="True" checked="checked" onclick="Impression.settings.update(this);" />
Couleurs Couleurs
</label> </label>
<label for="type_impression_nb" class="labelRadio compact"><input type="radio" name="type_impression" id="type_impression_nb" class="inputRadio" value="$crans.impression.IMPRESSION_NB" onclick="Impression.settings.update(this);" /> <label for="type_impression_nb" class="labelRadio compact"><input type="radio" name="type_impression" id="type_impression_nb" class="inputRadio" value="False" onclick="Impression.settings.update(this);" />
Noir et blanc Noir et blanc
</label> </label>
</fieldset> </fieldset>
@ -31,15 +31,15 @@ Crans.messages.setMessage('$errorMsg.replace("\'","\\\'")', 'errorMessage')
<label for="papier" class="labelInput">Papier:</label> <label for="papier" class="labelInput">Papier:</label>
<select name="papier" id="papier" class="selectOne" onchange="Impression.settings.update(this);"> <select name="papier" id="papier" class="selectOne" onchange="Impression.settings.update(this);">
#for type_papier in $crans.impression.PAPIER_VALEURS_POSSIBLES #for type_papier in ['A4', 'A3']
<option value="$type_papier">$crans.impression.LABELS[type_papier]</option> <option value="$type_papier">$crans.impression.impression_canon.DICT_PAPIER[type_papier]</option>
#end for #end for
</select> </select>
<br /> <br />
<label for="agrafes" class="labelInput">Agrafes:</label> <label for="agrafage" class="labelInput">Agrafes:</label>
<select name="agrafes" id="agrafes" class="selectOne" onchange="Impression.settings.update(this);"> <select name="agrafage" id="agrafage" class="selectOne" onchange="Impression.settings.update(this);">
#for type_agrafes in $crans.impression.AGRAPHES_VALEURS_POSSIBLES #for type_agrafes in $crans.impression.impression_canon.DICT_AGRAFAGE.keys()
<option value="$type_agrafes">$crans.impression.LABELS[type_agrafes]</option> <option value="$type_agrafes">$crans.impression.impression_canon.DICT_AGRAFAGE[type_agrafes]</option>
#end for #end for
</select> </select>
<br /> <br />
@ -50,16 +50,16 @@ Crans.messages.setMessage('$errorMsg.replace("\'","\\\'")', 'errorMessage')
<fieldset><legend>Disposition</legend> <fieldset><legend>Disposition</legend>
<label for="disposition_recto" class="labelRadio compact"> <label for="disposition_recto" class="labelRadio compact">
<input type="radio" name="disposition" id="disposition_recto" class="inputRadio" value="$crans.impression.IMPRESSION_RECTO" onclick="Impression.settings.update(this);" /> <input type="radio" name="disposition" id="disposition_recto" class="inputRadio" value="False" onclick="Impression.settings.update(this);" />
Recto Recto
</label> </label>
<label for="disposition_recto_verso" class="labelRadio compact"> <label for="disposition_recto_verso" class="labelRadio compact">
<input type="radio" name="disposition" id="disposition_recto_verso" class="inputRadio" value="$crans.impression.IMPRESSION_RECTO_VERSO" checked="checked" onclick="Impression.settings.update(this);" /> <input type="radio" name="disposition" id="disposition_recto_verso" class="inputRadio" value="True" checked="checked" onclick="Impression.settings.update(this);" />
Recto-verso Recto-verso
</label> </label>
<label for="disposition_recto_verso_short" class="labelRadio compact"> <label for="disposition_livret" class="labelRadio compact">
<input type="radio" name="disposition" id="disposition_recto_verso_short" class="inputRadio" value="$crans.impression.IMPRESSION_RECTO_VERSO_SHORT" onclick="Impression.settings.update(this);" /> <input type="radio" name="disposition" id="disposition_livret" class="inputRadio" value="True" onclick="Impression.settings.update(this);" />
Recto-verso court Livret avec piqûre à cheval
</label> </label>
<a class="aide" href="http://wiki.crans.org/VieCrans/ImpressionReseau/Aide/Disposition">aide</a> <a class="aide" href="http://wiki.crans.org/VieCrans/ImpressionReseau/Aide/Disposition">aide</a>
</fieldset> </fieldset>

View file

@ -183,6 +183,10 @@ class impression:
couleur = kw.get('couleur', None) couleur = kw.get('couleur', None)
if couleur in [True, False]: if couleur in [True, False]:
self._settings['couleur'] = couleur self._settings['couleur'] = couleur
elif couleur == "True":
self._settings['couleur'] = True
elif couleur == "False":
self._settings['couleur'] = False
try: try:
if int(kw['copies']) >= 1: if int(kw['copies']) >= 1:
@ -191,6 +195,8 @@ class impression:
pass pass
recto_verso = kw.get('recto_verso', None) recto_verso = kw.get('recto_verso', None)
if recto_verso == "True": recto_verso = True
if recto_verso == "False": recto_verso = False
if recto_verso in [True, False]: if recto_verso in [True, False]:
self._settings['recto_verso'] = recto_verso self._settings['recto_verso'] = recto_verso
@ -207,6 +213,8 @@ class impression:
self._settings['agrafage'] = agrafage self._settings['agrafage'] = agrafage
livret = kw.get('livret', None) livret = kw.get('livret', None)
if livret == "True": livret = True
if livret == "False": livret = False
if livret in [True, False]: if livret in [True, False]:
self._settings['livret'] = livret self._settings['livret'] = livret
self._settings['portrait'] = not(livret) self._settings['portrait'] = not(livret)
@ -330,9 +338,9 @@ class impression:
c_impression = c_papier * pages + impression.c_face_nb * pages c_impression = c_papier * pages + impression.c_face_nb * pages
# Cout des agrafes # Cout des agrafes
if self._settings['agrafe'] in ["Top", "Bottom", "Left", "Right"] or self._settings['livret']: if self._settings['agrafage'] in ["Top", "Bottom", "Left", "Right"] or self._settings['livret']:
nb_agrafes = 2 nb_agrafes = 2
elif self._settings['agrafe'] in ["None", None]: elif self._settings['agrafage'] in ["None", None]:
nb_agrafes = 0 nb_agrafes = 0
else: else:
nb_agrafes = 1 nb_agrafes = 1
@ -397,10 +405,10 @@ class impression:
#Indique la présence d'un bac de sortie avec agrafeuse #Indique la présence d'un bac de sortie avec agrafeuse
# options += " -o Option20=MBMStaplerStacker -o OutputBin=StackerDown" # options += " -o Option20=MBMStaplerStacker -o OutputBin=StackerDown"
if self._settings['paper'] == 'A4tr': if self._settings['papier'] == 'A4tr':
options += ' -o InputSlot=SideDeck -o MediaType=OHP' options += ' -o InputSlot=SideDeck -o MediaType=OHP'
options += ' -o pdf-paper=571x817 -o PageSize=A4' options += ' -o pdf-paper=571x817 -o PageSize=A4'
elif self._settings['paper'] == 'A4': elif self._settings['papier'] == 'A4':
options += ' -o pdf-paper=571x817 -o PageSize=A4' options += ' -o pdf-paper=571x817 -o PageSize=A4'
else: else:
options += ' -o pdf-expand -o pdf-paper=825x1166 -o PageSize=A3' options += ' -o pdf-expand -o pdf-paper=825x1166 -o PageSize=A3'