Ajout des modules initiaux

darcs-hash:20070124114812-f46e9-171ef12f1e1b89ae005adf4aab6f6535fb9289e6.gz
This commit is contained in:
gdetrez 2007-01-24 12:48:12 +01:00
parent 8713311bc1
commit ed3ab40ccd
80 changed files with 4852 additions and 5 deletions

View file

@ -0,0 +1,81 @@
#! /usr/bin/env python
import cherrypy, tempfile, shutil, os
import crans.impression
import crans.impression.digicode
import crans.cp
from ClassesIntranet.ModuleBase import ModuleBase
class main(ModuleBase):
_droits = ["Imprimeur"]
def category(self):
return "Imprimeur"
def title(self):
return "Digicode"
##########################
# affichage
##########################
#
# methode qui affiche la template
#
def index(self, submit = None, fileList = None, newFile = None ):
return {'template':'digicode',
'values':{},
'stylesheets':['digicode.css'],
'scripts':['digicode.js', 'popup.js'],
}
index.exposed = True
##########################
# AJAX
##########################
#
# methode qui renvoie la liste des codes
#
def codeList(self):
try:
listeBrute = crans.impression.digicode.list_code()
liste_formatee = []
for aCode in listeBrute:
age = aCode[1]
age_jours = (age/3600)/24
age_heures = (age/3600) - age_jours*24
age_minutes = (age/60) - (age/3600)*60
if age_jours > 0:
age_string = "%sj %sh %smin" % (str(age_jours), str(age_heures), str( age_minutes ))
elif age_heures > 0:
age_string = "%sh %smin" % (str(age_heures), str( age_minutes ))
else:
age_string = "%smin" % (str( age_minutes ))
liste_formatee.append({'code':aCode[0], 'age':age_string, 'desc':aCode[2]})
return {'codes': liste_formatee}
except Exception, e:
crans.cp.log('erreur lors de la creation de la liste de codes :' + str(e), 'DIGICODE', 1)
return {'erreur':str(e)}
codeList.exposed= True
#
# methode qui cree un code
#
def createCode(self, code=None, adherent=''):
try:
if adherent == '':
adherent = cherrypy.session['uid']
if code:
try:
int(code)
if code.__len__() != 6:
raise
except:
return {'formatErreur':1}
code = crans.impression.digicode.save_code(code, adherent)
else:
code = crans.impression.digicode.gen_code(adherent)
crans.cp.log("code cree : %s" % code, 'DIGICODE')
return {'code': code, "age" : "new", "desc":adherent}
except Exception, e:
crans.cp.log("erreur lors de la creation de code : " + str(e), 'DIGICODE', 1)
return {'erreur':str(e)}
createCode.exposed= True

View file

@ -0,0 +1,85 @@
/*************************************************************
..
.... ............ ........
. ....... . .... ..
. ... .. .. .. .. ..... . ..
.. .. ....@@@. .. . ........ .
.. . .. ..@.@@..@@. .@@@@@@@ @@@@@@. ....
.@@@@. .@@@@. .@@@@..@@.@@..@@@..@@@..@@@@.... ....
@@@@... .@@@.. @@ @@ .@..@@..@@...@@@. .@@@@@. ..
.@@@.. . @@@. @@.@@..@@.@@..@@@ @@ .@@@@@@.. .....
...@@@.... @@@ .@@.......... ........ ..... ..
. ..@@@@.. . .@@@@. .. ....... . .............
. .. .... .. .. . ... ....
. . .... ............. .. ...
.. .. ... ........ ... ...
................................
==============================================================
digicode.css - Intranet Style
STYLE PAGE DU DIGICODE
Copyright (c) 2006 by www.crans.org
**************************************************************/
#codesTable {
width:60%;
border:thin black solid;
float:left;
}
#codesTable thead {
color:gray;
}
#codesTable .code {
border-right:thin gray solid;
width:70%;
}
#codesTable tbody .age {
text-align:right;
}
#codesTable td,
#codesTable th {
margin:0;
padding:2px 5px;
}
#codesTable tbody td {
border-top:thin gray solid;
}
#codesTable thead th {
border-top:none;
}
div#addCodeBox {
float: right;
border:thin black solid;
padding:10px;
margin:0 5%;
width:25%;
}
div#addCodeBox h1 {
font-size:1.1em;
margin:2px 10px 20px 10px;
text-align:center;
}
div#addCodeBox form {
}
div#addCodeBox form input,
div#addCodeBox form button {
margin:3px;
}
form input.textinput {
border: thin gray solid;
}

View file

@ -0,0 +1,170 @@
/* ************************************************************
* Digicode
************************************************************
* Digicode.init : initialisation de la page
* Digicode.makeCode : creation de codes
* Digicode.codelist : liste des codes
* Digicode.AJAX : ajax
*/
Digicode = {};
/*****************************
Digicode.init
*****************************/
Digicode.init = function()
{
// afficher le tableau codelist
appendChildNodes("globalDiv", Digicode.codelist.create());
// recuperer la liste des codes
this.codelist.load();
// afficher le formulaire de creation de code
appendChildNodes("globalDiv", DIV({"id":"addCodeBox"}));
Digicode.makeCode.displayForm();
}
/*****************************
Digicode.makeCode
*****************************/
Digicode.makeCode = {}
Digicode.makeCode.displayForm = function()
{
var myForm = FORM({'id':'createCodeForm', 'name':'createCodeForm','onsubmit':"Digicode.makeCode.createCode(document.createCodeForm.newCodeLogin.value, document.createCodeForm.newCode.value); return false;", 'style':'display: none;'},
LABEL({'for':'newCodeLogin'}, "Login adhérent :"),
INPUT({"name":"newCodeLogin", "size":"10", "maxlength":"20", "class":"textinput"}),
BR(),
LABEL({'for':'newCode'}, "Code :"),
INPUT({"name":"newCode", "size":"6", "maxlength":"6", "class":"textinput"}),
BUTTON({"type":"submit","onclick":"Digicode.makeCode.createCode(document.createCodeForm.newCodeLogin.value, document.createCodeForm.newCode.value)", "style":"float:right;"},"Créer code"),
BUTTON({"type":"button","onclick":"Digicode.makeCode.createCode(document.createCodeForm.newCodeLogin.value)", "style":"float:right;"},"Code aléatoire")
);
replaceChildNodes("addCodeBox", H1({},"Nouveau code"), myForm );
appear(myForm);
}
Digicode.makeCode.restoreForm = function()
{
try
{
removeElement("newCodeDisplay");
removeElement("loading");
} catch (error){}
appear("createCodeForm");
}
Digicode.makeCode.disableForm = function()
{
try
{
var form = getElement("createCodeForm");
var elts = form.elements;
for (i=0 ; i < elts.length ; i++)
elts[i].disabled = true;
}
catch (error){}
}
Digicode.makeCode.createCode = function(login, code)
{
var image = createDOM("IMG",{'style':'margin-right:2px;float:right;','src':'/static/images/indicator.gif'});
appendChildNodes("addCodeBox", DIV({'id':"loading",'style':'display:none;max-height:1em;float:left;'},image,"Loading"));
this.disableForm();
//removeElement("createCodeForm");
appear("loading");
if (code)
Digicode.AJAX.call("createCode?code="+code + "&adherent=" + login, this.handleNewCode);
else
Digicode.AJAX.call("createCode?adherent=" + login, this.handleNewCode);
}
Digicode.makeCode.handleNewCode = function(res)
{
if (res.code)
{
replaceChildNodes("addCodeBox",
H1({}, "Code créé"),
DIV({'id':"newCodeDisplay",
'style':'display:none;font-size:2em;maring:1em;font-weight:bold;text-align:center;',
'onclick':"Digicode.makeCode.displayForm();"},res.code));
appear("newCodeDisplay");
//removeElement("loading");
Digicode.codelist.addCode(res);
} else if (res.erreur) {
logError("Erreur distante : " + res.erreur);
alert("Erreur sur le serveur, le code est peut-être déjà pris.")
Digicode.makeCode.displayForm();
} else if (res.formatErreur) {
alert("Ceci n'est pas un code valide");
Digicode.makeCode.displayForm();
}
}
/*****************************
Digicode.codelist
*****************************/
Digicode.codelist = {};
Digicode.codelist.create = function ()
{
var thead = createDOM("thead", {},
createDOM("th", {'class':'code'}, "Code" ),
createDOM("th", {'class':'age'}, "Age")
);
var tbody = createDOM("tbody", {"id":"codeList"});
return TABLE({"id":"codesTable", "cellspacing":"0"}, thead, tbody)
}
Digicode.codelist.load = function()
{
Digicode.AJAX.call("codeList", Digicode.codelist.displayCodes);
}
Digicode.codelist.displayCodes = function(result)
{
if (result.codes)
replaceChildNodes('codeList',map(Digicode.codelist.newCodeTrNodeFromDict,result.codes));
else if (result.erreur)
logError("Erreur distante : " + result.erreur);
}
Digicode.codelist.newCodeTrNodeFromDict = function (aDict, style)
{
if (style) {
var aRow = createDOM("TR", {'id':'code'+aDict.code,"style":style});
} else
var aRow = createDOM("TR", {'id':'code'+aDict.code});
appendChildNodes(aRow, createDOM("TD", {'class':'code'}, aDict.code, SPAN({'style':'color:gray;margin-left:2em;'}, aDict.desc ) ) );
appendChildNodes(aRow, createDOM("TD", {'class':'age'}, aDict.age) );
return aRow;
}
Digicode.codelist.addCode = function (aDict)
{
var newLine = this.newCodeTrNodeFromDict(aDict);
appendChildNodes("codeList", newLine);
pulsate(newLine);
}
/*****************************
Digicode.AJAX
*****************************/
Digicode.AJAX = {}
Digicode.AJAX.call = function(page, callBack) {
logDebug("calling AJAX : " + page);
var e = loadJSONDoc(page);
e.addCallback(callBack);
e.addErrback(this.errorHandler);
}
Digicode.AJAX.errorHandler = function(d) {
//Digicode.AJAX..modifPrix("Erreur", false);
logError("AJAX Error: " + d);
}
setInterval(Digicode.codelist.load, 30000);

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -0,0 +1,14 @@
#import crans.impression
<div id="globalDiv">
<h1>Gestion des codes pour le local impression</h1>
</div>
<script type="text/javascript">
<!--
Digicode.init();
//-->
</script>
<noscript>
<p>Cette page utilise javascript. Elle n'est pas support&eacute;e par votre
navigateur.</p>
</noscript>