ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
Plone Conference
       Arnhem, 2012

United Nations: training and
distance learning with Plone
          Simone Orsi
Who am I
                    Simone Orsi
               twitter.com/simahawk
             simahawk <at> gmail.com

ITCILO (2007-2008)
  IT specialist (WTH is Plone???)

DOMSENSE (2008-2012)
 Python developer 4 years
 doing mainly Plone and OpenERP

ABSTRACT (2012-)
  Python developer (from 1/10/2012)
What this talk is about


  UNITED NATIONS:
   ITCILO CAMPUS
What this talk is about



  UNITED NATIONS:
   ITCILO CAMPUS
ITCILO
What is?
 ¨C   International Training Centre of the International Labour Organization [1] [2]
 ¨C   The campus is based in Turin, Piedmont, Italy
What it does?
 ¨C   Provides residential, on-line and on-the-field training to organizations and
     governments all around the world.
Where Plone comes in?
 ¨C   Institutional portal
 ¨C   Intranet
 ¨C   E-learning platforms
 ¨C   Evaluation system


[1] www.itcilo.org
[2] www.ilo.org
ITCILO
The Plone bet
¨C   Security
¨C   Flexibility
¨C   TTW editing / scripting (pls don't throw this
    away!)
¨C   Powerful
¨C   Using since v1 (huge knowledge so far)
¨C   Unify platforms
Projects
¡ñ   Evaluation
¡ñ   SCORM
¡ñ   Course Area
¡ñ   Conferences
¡ñ   Selection
¡ñ   Migrations
Evaluation
Questionnaires' evaluation system
¨C   Plone 3.1.5 + sqlalchemy + MySQL
¨C   8 languages (no LP, multilanguagefields [1])
¨C   Questions + legends archive
¨C   Course configuration (data from MySQL MAP)
¨C   Questionnaire customization
¨C   Per-questionnaire editable questions
¨C   Per-questionnaire resource person editable
    questions

    [1] http://pypi.python.org/pypi/raptus.multilanguagefields
Evaluation
Questionnaires' evaluation system
¨C   Customizable printing templates, headers, covers
¨C   Web stats
¨C   XLS export / stats
¨C   CSV import / export
Evaluation
Why Plone?
¨C   They knew it
¨C   I knew it
¨C   Completely integrated into the intranet
¨C   ¡°Like it or not, Plone is a platform. It is a powerful
    starting point for building intranets, extranets, and
    all sorts of things that should never be built on
    Plone but we do it anyways.¡± @eleddy :)
Evaluation ¨C Questionnaire config
Evaluation
Questions management
¨C   Multilanguage texts (in-place)
¨C   Multilanguage legends (in-place)
¨C   Demographic, mandatory, service or optional
¨C   XLS stats export settings
¨C   Customizable headers per set of questions
    (gender, organization, training, service)
Evaluation - Questions management
Evaluation
Printing
¨C   Multilang selection
¨C   Different template per-language (r.multilangfields)
¨C   ODT templates to PDF (relatorio lib +OOo)
¨C   Custom multilang cover (specifica ATCT)
Evaluation - Printing
Evaluation

Import / Export
¨C Import CSV (questionnaire results)
¨C Export CSV (questionnaire results)
¨C XLS export (results stats macro)
Evaluation

Web stats
¨C Advanced search for filtering upon
  dates or activity code or models or
  technical program
Evaluation ¨C web stats
Evaluation
PAX Session ¨C token

¨C   When questionnaire's enabled for compilation a
    unique token is generated

¨C   Participants can then access the questionnaire
    using a specific URL for every language

¨C   When questionnaire's enabled for compilation all
    the token are deleted
Evaluation ¨C PAX session
Evaluation
Future
¨C Multilang editable text
¨C Flexible answer options
¨C Flexible questionnaire web templates
¨C TTW web template editor
¨C Web stats with graphs
SCORM
Sharable Content Object Reference Model (SCORM)
is a collection of standards and specifications for web-
based e-learning.
It defines communications between client side content
and a host system called the run-time environment,
which is commonly supported by a learning management
system.
SCORM also defines how content may be packaged into
a transferable ZIP file called "Package Interchange
Format".


Source: http://en.wikipedia.org/wiki/SCORM
SCORM
Plone packages

  ¨C   collective.scormviewer [1]
      integrates SCORM JS API into Plone. Makes possible to play
      flash quiz (created with Articulate for example) and to keep track
      of usage and results. Thanks to Silvio Tomatis [silviot] :)

  ¨C   collective.archiveviewer [2]
      Allows to read zipped file content within Plone without having to
      download and extract it. Used by c.scormviewer for loading
      SCORM packages content.


 [1] (not released yet)
 [2] http://pypi.python.org/pypi/collective.archiveviewer
SCORM
Course area
¡ñ   Conferences
¡ñ   Assignments
    ¨C   Adaptation of ECAssignment
¡ñ   Notifications
    ¨C   Per-content per-user settings with manager override
¡ñ   SCORM
¡ñ   Selection
    ¨C   Training tracks reservation
Conferences
¡ñ   It was SoliComm (Plone 2.5, ICDL etc)
¡ñ
    Purpose: asynchronous training across continents
¡ñ
    Support Explorer 6/7
¡ñ   Low bandwidth connections
¡ñ   Ploneboard heavily customized
¡ñ
    Read/unread feature [1]
¡ñ
    Statistics
¡ñ
    Local groups


    [1] http://pypi.python.org/pypi/collective.readunread
Selection
A training track selection wizard


¨C   ATCT
    ¡ñ   for Selection, Session, SubSession, Track objects

¨C   Wizard
    ¡ñ   a page is generated for every session (like one
        per day)
    ¡ñ   A session contains sub-sessions (like time slots)
        that group tracks
    ¡ñ   The PAX can select tracks to attend
Selection
A training track selection wizard


¨C   Contraints
    ¡ñ   Track availability constrained on max PAX per
        track and duplicated selection

¨C   Results
    ¡ñ   Web
    ¡ñ   CSV export
Migrations
ITICILO.org
¨C   3.3.6 ¡ú 4.1
¨C   4 languages
¨C   Custom content types and portlets
¨C   Badly broken DB connection
¨C   quintagroup.transmogrifier
    ¡ñ   All went well except for a ton of XML marshalling error
¨C   Up and running pretty fast without tuning!
Migrations
MMW.ITCILO.ORG

¨C   2.1 ¡ú 4.1
¨C   7 languages (including Bahasa Indonesia, Ti?ng
    Vi?t, §²§å§ã§ã§Ü§Ú§Û )
¨C   Plone Article, Lingua Plone, Plone ExFile,
    Remember + Membrane, Ploneboard, Custom
    ATCTs for Member, Courses, etc
¨C   A lot of scripts and templates into skins layers
¨C   No portal_setup
¨C   ...all the stuff you need for making a migration a
    pure hell :)
¨C   c.transmogrifier + json to the rescue
Migrations
ACTRAV.ITCILO.ORG: PHP4 ¡ú Plone 4.2

¨C   Was hacked and broken every now and then
¨C   Multilang (LinguaPlone)
¨C   Very bad URLs
¨C   Custom pipeline for Funnelweb [1]
    collective.transmogrifier [2]
¨C   Themed as the original one with thanks to
    plone.app.theming [3]

[1] http://pypi.python.org/pypi/collective.transmogrifier
[2] http://pypi.python.org/pypi/funnelweb
[3] http://pypi.python.org/pypi/plone.app.theming
ACTRAV ¨C original website
ACTRAV ¨C migrated website
QUESTIONS?

More Related Content

Ploneconf2012 talk

  • 1. Plone Conference Arnhem, 2012 United Nations: training and distance learning with Plone Simone Orsi
  • 2. Who am I Simone Orsi twitter.com/simahawk simahawk <at> gmail.com ITCILO (2007-2008) IT specialist (WTH is Plone???) DOMSENSE (2008-2012) Python developer 4 years doing mainly Plone and OpenERP ABSTRACT (2012-) Python developer (from 1/10/2012)
  • 3. What this talk is about UNITED NATIONS: ITCILO CAMPUS
  • 4. What this talk is about UNITED NATIONS: ITCILO CAMPUS
  • 5. ITCILO What is? ¨C International Training Centre of the International Labour Organization [1] [2] ¨C The campus is based in Turin, Piedmont, Italy What it does? ¨C Provides residential, on-line and on-the-field training to organizations and governments all around the world. Where Plone comes in? ¨C Institutional portal ¨C Intranet ¨C E-learning platforms ¨C Evaluation system [1] www.itcilo.org [2] www.ilo.org
  • 6. ITCILO The Plone bet ¨C Security ¨C Flexibility ¨C TTW editing / scripting (pls don't throw this away!) ¨C Powerful ¨C Using since v1 (huge knowledge so far) ¨C Unify platforms
  • 7. Projects ¡ñ Evaluation ¡ñ SCORM ¡ñ Course Area ¡ñ Conferences ¡ñ Selection ¡ñ Migrations
  • 8. Evaluation Questionnaires' evaluation system ¨C Plone 3.1.5 + sqlalchemy + MySQL ¨C 8 languages (no LP, multilanguagefields [1]) ¨C Questions + legends archive ¨C Course configuration (data from MySQL MAP) ¨C Questionnaire customization ¨C Per-questionnaire editable questions ¨C Per-questionnaire resource person editable questions [1] http://pypi.python.org/pypi/raptus.multilanguagefields
  • 9. Evaluation Questionnaires' evaluation system ¨C Customizable printing templates, headers, covers ¨C Web stats ¨C XLS export / stats ¨C CSV import / export
  • 10. Evaluation Why Plone? ¨C They knew it ¨C I knew it ¨C Completely integrated into the intranet ¨C ¡°Like it or not, Plone is a platform. It is a powerful starting point for building intranets, extranets, and all sorts of things that should never be built on Plone but we do it anyways.¡± @eleddy :)
  • 12. Evaluation Questions management ¨C Multilanguage texts (in-place) ¨C Multilanguage legends (in-place) ¨C Demographic, mandatory, service or optional ¨C XLS stats export settings ¨C Customizable headers per set of questions (gender, organization, training, service)
  • 14. Evaluation Printing ¨C Multilang selection ¨C Different template per-language (r.multilangfields) ¨C ODT templates to PDF (relatorio lib +OOo) ¨C Custom multilang cover (specifica ATCT)
  • 16. Evaluation Import / Export ¨C Import CSV (questionnaire results) ¨C Export CSV (questionnaire results) ¨C XLS export (results stats macro)
  • 17. Evaluation Web stats ¨C Advanced search for filtering upon dates or activity code or models or technical program
  • 19. Evaluation PAX Session ¨C token ¨C When questionnaire's enabled for compilation a unique token is generated ¨C Participants can then access the questionnaire using a specific URL for every language ¨C When questionnaire's enabled for compilation all the token are deleted
  • 21. Evaluation Future ¨C Multilang editable text ¨C Flexible answer options ¨C Flexible questionnaire web templates ¨C TTW web template editor ¨C Web stats with graphs
  • 22. SCORM Sharable Content Object Reference Model (SCORM) is a collection of standards and specifications for web- based e-learning. It defines communications between client side content and a host system called the run-time environment, which is commonly supported by a learning management system. SCORM also defines how content may be packaged into a transferable ZIP file called "Package Interchange Format". Source: http://en.wikipedia.org/wiki/SCORM
  • 23. SCORM Plone packages ¨C collective.scormviewer [1] integrates SCORM JS API into Plone. Makes possible to play flash quiz (created with Articulate for example) and to keep track of usage and results. Thanks to Silvio Tomatis [silviot] :) ¨C collective.archiveviewer [2] Allows to read zipped file content within Plone without having to download and extract it. Used by c.scormviewer for loading SCORM packages content. [1] (not released yet) [2] http://pypi.python.org/pypi/collective.archiveviewer
  • 24. SCORM
  • 25. Course area ¡ñ Conferences ¡ñ Assignments ¨C Adaptation of ECAssignment ¡ñ Notifications ¨C Per-content per-user settings with manager override ¡ñ SCORM ¡ñ Selection ¨C Training tracks reservation
  • 26. Conferences ¡ñ It was SoliComm (Plone 2.5, ICDL etc) ¡ñ Purpose: asynchronous training across continents ¡ñ Support Explorer 6/7 ¡ñ Low bandwidth connections ¡ñ Ploneboard heavily customized ¡ñ Read/unread feature [1] ¡ñ Statistics ¡ñ Local groups [1] http://pypi.python.org/pypi/collective.readunread
  • 27. Selection A training track selection wizard ¨C ATCT ¡ñ for Selection, Session, SubSession, Track objects ¨C Wizard ¡ñ a page is generated for every session (like one per day) ¡ñ A session contains sub-sessions (like time slots) that group tracks ¡ñ The PAX can select tracks to attend
  • 28. Selection A training track selection wizard ¨C Contraints ¡ñ Track availability constrained on max PAX per track and duplicated selection ¨C Results ¡ñ Web ¡ñ CSV export
  • 29. Migrations ITICILO.org ¨C 3.3.6 ¡ú 4.1 ¨C 4 languages ¨C Custom content types and portlets ¨C Badly broken DB connection ¨C quintagroup.transmogrifier ¡ñ All went well except for a ton of XML marshalling error ¨C Up and running pretty fast without tuning!
  • 30. Migrations MMW.ITCILO.ORG ¨C 2.1 ¡ú 4.1 ¨C 7 languages (including Bahasa Indonesia, Ti?ng Vi?t, §²§å§ã§ã§Ü§Ú§Û ) ¨C Plone Article, Lingua Plone, Plone ExFile, Remember + Membrane, Ploneboard, Custom ATCTs for Member, Courses, etc ¨C A lot of scripts and templates into skins layers ¨C No portal_setup ¨C ...all the stuff you need for making a migration a pure hell :) ¨C c.transmogrifier + json to the rescue
  • 31. Migrations ACTRAV.ITCILO.ORG: PHP4 ¡ú Plone 4.2 ¨C Was hacked and broken every now and then ¨C Multilang (LinguaPlone) ¨C Very bad URLs ¨C Custom pipeline for Funnelweb [1] collective.transmogrifier [2] ¨C Themed as the original one with thanks to plone.app.theming [3] [1] http://pypi.python.org/pypi/collective.transmogrifier [2] http://pypi.python.org/pypi/funnelweb [3] http://pypi.python.org/pypi/plone.app.theming

Editor's Notes

  • #9: Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla Bla