[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
#
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 :
return {'nouvPrix':0.0}
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:
crans.cp.log("changeSettings : %s" % str(e), 'IMPRESSION', 1)
return {"erreur":str(e)}

View file

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

View file

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

View file

@ -183,6 +183,10 @@ class impression:
couleur = kw.get('couleur', None)
if couleur in [True, False]:
self._settings['couleur'] = couleur
elif couleur == "True":
self._settings['couleur'] = True
elif couleur == "False":
self._settings['couleur'] = False
try:
if int(kw['copies']) >= 1:
@ -191,6 +195,8 @@ class impression:
pass
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]:
self._settings['recto_verso'] = recto_verso
@ -207,6 +213,8 @@ class impression:
self._settings['agrafage'] = agrafage
livret = kw.get('livret', None)
if livret == "True": livret = True
if livret == "False": livret = False
if livret in [True, False]:
self._settings['livret'] = livret
self._settings['portrait'] = not(livret)
@ -330,9 +338,9 @@ class impression:
c_impression = c_papier * pages + impression.c_face_nb * pages
# 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
elif self._settings['agrafe'] in ["None", None]:
elif self._settings['agrafage'] in ["None", None]:
nb_agrafes = 0
else:
nb_agrafes = 1
@ -397,10 +405,10 @@ class impression:
#Indique la présence d'un bac de sortie avec agrafeuse
# 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 pdf-paper=571x817 -o PageSize=A4'
elif self._settings['paper'] == 'A4':
elif self._settings['papier'] == 'A4':
options += ' -o pdf-paper=571x817 -o PageSize=A4'
else:
options += ' -o pdf-expand -o pdf-paper=825x1166 -o PageSize=A3'