bonjour ci-jdessous un de  mes scripts qui cr�e automatiquement des types de
documents dans des worspaces diff�rents
et les publient selon crit�re dans des sections diff�rentes.
la methode pour editer (merci encore � Anahide pour sa r�ponse d'il y a deux
jours � ce sujet)
un proxy attend un dictionnaire correspondant au schema du document.

mes dictionnaires sont issus d'une requete provenant d'une table de bdd dont
les champs retourn�s ont les m^me noms que mon schema.

qui plus est ce script ajoute deux r�visions suppl�mentaire en espagnol et
anglais et ensuite publie dans la section voulue
il est brut tel quel, et je n'ai pas le temps de vous l'adapter pour vos
photos mais le principe reste le m^me
je ne les ai pas am�liorer pour moi par manque de temps ;-)


****************************************************************************
***************************
# script ajout de diagrammes

# Import a standard function, and get the HTML request and response objects.
from Products.PythonScripts.standard import html_quote

#variables
doc_lang = context.getDefaultLanguage()

type_name="Diagramme"

#ici la requete est tri�e par iddiag croissant et langue d�croissante pour
avoir : fr es en attention autres langues
recordset=
container.z_gestion_bdd.administration_base.affiche_tables.select_t_Import_d
iag_order_by()

enr = recordset.dictionaries()

#parcours des lignes de la requete
for x in enr:

    #on egarde ou on doit cr�er le diagramme si actif dans le niveau sinon
inactif
    if x['actif']=='o':
        context=container.workspaces.documents_cel.diagrammes.autoeval
    else:
        context=container.workspaces.documents_cel.diagrammes.inactifs


    #on verifie qu'on est sur la ligne fr
    if x['lang']=='fr':
        id=x['id_diag']
        #ici on retourne un id valable m�me si id contient des espaces et
des accents et autres caract�res interdits
        id_new=id = context.computeId(compute_from=id)
        try:
            context.invokeFactory(type_name, id_new)
            ob = getattr(context, id)
            doc = ob.getEditableContent()
            doc.edit(x)

            print
"*******************************************************************"
            print ob.id +" a �t� import� en langue fr dans "+ str(context)

        except:
            print x['id_diag']+ ' existe d�j� dans :' + str(context)


    else:
        try:
            print container.scol_add_lang_toProxy(ob,x['lang'],doc_lang,x)
            if x['lang']=='en':
                where="sections/site_de_formation/niveau" +
x['niveau']+"/diagrammes"
                dicopublish={'comment': x['comment'], 'workflow_action':
'copy_submit'}
                dicopublish['publish']=where
                context.scol_publish_auto(ob,'copy_submit',dicopublish)
                print x['id_diag'],"a �t� publi� dans : " ,where
        except:
            print 'pas de versions cr��es en supp pour langue : ' +
x['lang'] + " de " + x['id_diag']
            print "erreur de publication de "+ x['id_diag']


return printed


****************************************************************************
****
script d'ajout de language: scol_add_lang_toProxy

param:ob,lang,from_lang,mondico

try:
    # le fait de renseigner from_lang permets de duppliquer les champs
remplis
    # ainsi si seulement une partie du dico change les champs sont remplis
par d�faut
    # avec les valeurs de la version originale

    ob.addLanguageToProxy(lang=lang,from_lang=from_lang)
    doc = ob.getEditableContent(lang=lang)
    doc.edit(mondico)
    # peut �tre pas obligatoire revisiter les scripts cps pour v�rifier
    # le create revision doit certainement reindexer, en attendant ne peux
pas faire de mal
    container.reindexObject()
    print "cr�ation version de " + ob.id +' langue : '+ lang
except:
    print "erreur cr�ation version de "+ ob.id +' langue : '+ lang
return printed

****************************************************************************
*****
script de publication scol_publish_auto
adapt� de celui de content_status_modify de cps:

# $Id: content_status_modify.py,v 1.8 2004/02/13 18:14:51 madarche Exp $

param: ob,workflow_action, kw


wftool = context.portal_workflow
comment = kw.get('comment', '')

# publishing: copy and initalize proxy into one or more sections
allowed_transitions = wftool.getAllowedPublishingTransitions(ob)
for transition in allowed_transitions:
    rpaths=kw.get(transition)
    if rpaths:
        print "publi� dans : ", rpaths
        if same_type(rpaths, ''):
            rpaths = (rpaths,)
        for rpath in rpaths:
            wftool.doActionFor(ob, workflow_action,
                               dest_container=rpath,
                               initial_transition=transition,
                               comment=comment)

************************************************

voili, voila pour commencer

Jean-Philippe CAMGUILHEM

-----Message d'origine-----


Message: 6
Date: Wed, 20 Apr 2005 17:46:54 +0200
From: BCD <[EMAIL PROTECTED]>
Subject: Re: [CPS-users-fr] Phototh�que et import en nombre
To: Cps-Users-Fr <[email protected]>
Message-ID: <[EMAIL PROTECTED]>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

Jean-Paul Nhouyvanisvong a �crit :

>>Bonjour � tous,
>>
>>je suis confront� � un probl�me qui n'en est peut-�tre pas un :
>>j'ai une s�rie d'illustrations que je dois faire valider par un groupe
>>de travail, j'aurai souhait� le faire via CPS (3.2.x) et une
>>phototh�que, le seul hic c'est que je ne peux pas prendre le temps
>>d'uploader une par une quelques 150 � 200 illustrations.
>>Est-ce qu'il est possible d'automatiser �a, ou de faire de l'import en
>>masse ou que sais-je encore ?
>>J'irai peut-�tre aussi vite en d�ployant une appli comme phpwebgallery,
>>mais je ne suis pas un grand fan de la multiplication des interfaces,
>>d'autant plus que mes collaborateurs ne sont pas tous des utilisateurs
>>chevronn�s des TIC.
>>
>>D'avance merci !
>>
>>Cordialement,
>>
>>BCD
>>
>
>Salut !
>
>Tu peux te cr�er un folder au niveau de ta zmi, et ensutie y acceder
>par ftp pour uploader tes photos. Ensuite, tu peux te faire un petit
>script qui boucle sur tes photos et qui cr��s des documents du type
>image de ta phototheque dans ta phototheque.
>
>Cordialement,
>
>JP
>
Merci pour ta r�ponse, mais au risque de d�cevoir, le petit script qui
boucle sur mes photos, je suis bien incapable de le faire (j'arriverai
un jour � avoir du temps pour me former, si si). Je r�ve certainement un
peu trop mais est-ce que quelqu'un arait �a sous la main ?

Encore merci,

BCD



_______________________________________________
cps-users-fr 
Adresse de la liste : [email protected]
Gestion de l'abonnement : <http://lists.nuxeo.com/mailman/listinfo/cps-users-fr>

Répondre à