Package: collective.csv2atvocabularymanager
IntroductionNoteThis is not a Plone add-on.This library is an utility that helps developers to integrate vocabulary done usingATVocabularyManagerto be imported using Generic Setup Python handlers and CSV sources.It also supportLinguaPlone(if present).How to useJust import thecreateVocabularyfunction and use it:>>> portal_vocabularies = getToolByName(portal, 'portal_vocabularies')
>>> from collective.csv2atvocabularymanager.csv_import import createVocabulary
>>> createVocabulary(portal_vocabularies, fs_path, 'my.vocabulary.id',
...                  "My vocabulary", description='A vocabulary for...')Where:portal_vocabulariesis the ATVocabularyManager tool created after installing itfs_pathis a filesystem path of a folder, where you must put you CSV sources.If the code is called from asetuphandlers.pyscript, you can call something like:>>> os.path.join(os.path.dirname( __file__ ), 'vocabularies')This way the code will look for a “vocabularies” folder inside you projectvidis the vocabulary id that will be createdanda file with that name and “.csv” extension
will be searched inside thefs_pathfolder.titleis the title of the vocabularydescriptionis the description of the vocabularyAlso, you have other optional additional parameters:type_nameIf the portal_type name of the vocabulary created (default is “SimpleVocabulary”)sortMethodis the sort method of the vocabularynull_valuesis a list of possible values that must be used as “null” (can be useful is your CSV is taken
from a raw export from SQL database, and strings like “NULL” can be found inside the source).change_master_with_language_idis a boolean flag used to change the generated vocabulary term id, adding to it the language code suffix.CSV format examplesA CSV file named “foo.bar.vocabulary.csv” in that format:"id","en"
"item-1","Item one"
"item-2","Item two"
...Will create a vocabulary entry with id “foo.bar.vocabulary”, with vocabulary terms ids “item-1” and
“item-2”, … and titles “Item one”, “Item two”, …The header row is required. While the id column’s name is not used, that language column name is used to
specify the vocabulary term language code (so: normally use the portal default language).You can also import item in different languages:"id","en","it"
"item-1","Item one","Elemento 1"
"item-2","Item two","Elemento 2"
...In that way you will create same terms as in previous example, and additional vocabulary terms with ids
“item-1-it”, “item-2-it”, … and titles “Elemento 1”, “Elemento 2”, …You can provide additional languages addim more columns. Just remember to keep the fist language column as
the one with portal default language.The real power of language columns will be used if you also installLinguaPlone.
In that way you will create translations of vocabulary terms.Final notesPlease, keep in mind that ATVocabularyManager already support Generic Setup integration for creating vocabularies
at install time.However you are foced to use the “IMS VDEX Vocabulary File”.Please note also that vocabulary implementation from ATVM already provides aimportCSVmethod.AuthorsThis product was developed by RedTurtle Technology team.Changelog0.1.1 (2012-11-13)Fixed packaging error (missing MANIFEST.in file)
[keul]0.1.0 (2012-11-12)Initial release