2013-04-16 1 views
0

J'ai créé deux types de contenu dans Plone 4.3 via Dextérité et créé un produit Plone sur le système de fichiers.Création de sous-contenu basé sur le fichier csv dans parent (dextérité plone)

Les types sont

  • Fournisseur
  • article

articles ne peuvent exister que dans l'intérieur Fournisseur, et je peux créer manuellement de nouveaux éléments sans

Je voudrais être capable de créer un tas d'éléments si je télécharge un fichier CSV lors de la création d'un fournisseur. De toute façon la dextérité le supporte (trigger, vue personnalisée ...)?

Répondre

2

Vous devrez gérer cela dans une vue personnalisée. Il n'y a pas de code préexistant pour gérer cela.

Pour les cas simples, il suffit de lire le fichier téléchargé avec le module csv et utiliser les lignes pour créer des objets dans le conteneur Supplier:

from plone.dexterity.utils import createContentInContainer 
import csv 

reader = csv.reader(uploadedfile) 

for row in reader: 
    createContentInContainer(supplier, 'your.package.item', title=row[0], ...) 

Pour les opérations plus complexes, vous pourriez construire un pipeline transmogrifier avec le transmogrify.dexterity pour convertir des données CSV en objets de dextérité, mais c'est probablement exagéré ici.

+0

Comment gérer le post trigger? Signification que je tape dans les informations pour le fournisseur et appuyez sur Soumettre (comme les adaptateurs personnalisés dans PloneFormGen)? –

+0

@PeterB: Avec une [vue personnalisée] (http://developer.plone.org/reference_manuals/external/plone.app.dexterity/custom-views.html) je dirais. –

+0

J'ai maintenant trouvé une solution basée sur votre suggestion avec une vue personnalisée. Merci de votre aide –

Questions connexes