SlideShare a Scribd company logo
1 of 34
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?
 –   International Training Centre of the International Labour Organization [1] [2]
 –   The campus is based in Turin, Piedmont, Italy
What it does?
 –   Provides residential, on-line and on-the-field training to organizations and
     governments all around the world.
Where Plone comes in?
 –   Institutional portal
 –   Intranet
 –   E-learning platforms
 –   Evaluation system


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

    [1] http://pypi.python.org/pypi/raptus.multilanguagefields
Evaluation
Questionnaires' evaluation system
–   Customizable printing templates, headers, covers
–   Web stats
–   XLS export / stats
–   CSV import / export
Evaluation
Why Plone?
–   They knew it
–   I knew it
–   Completely integrated into the intranet
–   “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 – Questionnaire config
Evaluation
Questions management
–   Multilanguage texts (in-place)
–   Multilanguage legends (in-place)
–   Demographic, mandatory, service or optional
–   XLS stats export settings
–   Customizable headers per set of questions
    (gender, organization, training, service)
Evaluation - Questions management
Evaluation
Printing
–   Multilang selection
–   Different template per-language (r.multilangfields)
–   ODT templates to PDF (relatorio lib +OOo)
–   Custom multilang cover (specifica ATCT)
Evaluation - Printing
Evaluation

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

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

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

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

–   When questionnaire's enabled for compilation all
    the token are deleted
Evaluation – PAX session
Evaluation
Future
– Multilang editable text
– Flexible answer options
– Flexible questionnaire web templates
– TTW web template editor
– 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

  –   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] :)

  –   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
    –   Adaptation of ECAssignment
●   Notifications
    –   Per-content per-user settings with manager override
●   SCORM
●   Selection
    –   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


–   ATCT
    ●   for Selection, Session, SubSession, Track objects

–   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


–   Contraints
    ●   Track availability constrained on max PAX per
        track and duplicated selection

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

–   2.1 → 4.1
–   7 languages (including Bahasa Indonesia, Tiếng
    Việt, Русский )
–   Plone Article, Lingua Plone, Plone ExFile,
    Remember + Membrane, Ploneboard, Custom
    ATCTs for Member, Courses, etc
–   A lot of scripts and templates into skins layers
–   No portal_setup
–   ...all the stuff you need for making a migration a
    pure hell :)
–   c.transmogrifier + json to the rescue
Migrations
ACTRAV.ITCILO.ORG: PHP4 → Plone 4.2

–   Was hacked and broken every now and then
–   Multilang (LinguaPlone)
–   Very bad URLs
–   Custom pipeline for Funnelweb [1]
    collective.transmogrifier [2]
–   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 – original website
ACTRAV – migrated website
QUESTIONS?

More Related Content

Similar to Ploneconf2012 talk

Reusable Learning Objects: Designing and Archiving
Reusable Learning Objects: Designing and ArchivingReusable Learning Objects: Designing and Archiving
Reusable Learning Objects: Designing and ArchivingIshan Abeywardena, Ph.D.
 
딥러닝프레임워크비교
딥러닝프레임워크비교딥러닝프레임워크비교
딥러닝프레임워크비교Junyi Song
 
Contextual Tour of Plone - (a top open source web content management system)
Contextual   Tour of Plone - (a top open source web content management system)Contextual   Tour of Plone - (a top open source web content management system)
Contextual Tour of Plone - (a top open source web content management system)Ken Wasetis
 
A Cloud-based Automated Authoring System to support e-Learning in Higher Educ...
A Cloud-based Automated Authoring System to support e-Learning in Higher Educ...A Cloud-based Automated Authoring System to support e-Learning in Higher Educ...
A Cloud-based Automated Authoring System to support e-Learning in Higher Educ...Mohamed Ossa
 
Build Python CMS The Plone Way
Build Python CMS The Plone WayBuild Python CMS The Plone Way
Build Python CMS The Plone WayTsungWei Hu
 
Near real-time anomaly detection at Lyft
Near real-time anomaly detection at LyftNear real-time anomaly detection at Lyft
Near real-time anomaly detection at Lyftmarkgrover
 
S. Bartoli & F. Pompermaier – A Semantic Big Data Companion
S. Bartoli & F. Pompermaier – A Semantic Big Data CompanionS. Bartoli & F. Pompermaier – A Semantic Big Data Companion
S. Bartoli & F. Pompermaier – A Semantic Big Data CompanionFlink Forward
 
14_Ed_Symp_Open_Source
14_Ed_Symp_Open_Source14_Ed_Symp_Open_Source
14_Ed_Symp_Open_SourceSteve Arnold
 
Introducing Matterhorn
Introducing MatterhornIntroducing Matterhorn
Introducing MatterhornKenji Lamb
 
ElasTest presentation in MadridJUG (Madrid December 2017)
ElasTest presentation in MadridJUG (Madrid December 2017)ElasTest presentation in MadridJUG (Madrid December 2017)
ElasTest presentation in MadridJUG (Madrid December 2017)ElasTest Project
 
Enabling accessible multimedia for Moodle: iMoot 2010
Enabling accessible multimedia for Moodle: iMoot 2010Enabling accessible multimedia for Moodle: iMoot 2010
Enabling accessible multimedia for Moodle: iMoot 2010Nick Freear
 
Dr. Tanvi FOCP Unit-2 Session-1 PPT (Revised).pdf
Dr. Tanvi FOCP Unit-2 Session-1 PPT (Revised).pdfDr. Tanvi FOCP Unit-2 Session-1 PPT (Revised).pdf
Dr. Tanvi FOCP Unit-2 Session-1 PPT (Revised).pdfRahulSingh190790
 
Open source ml systems that need to be built
Open source ml systems that need to be builtOpen source ml systems that need to be built
Open source ml systems that need to be builtNikhil Garg
 
Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015
Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015
Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015Jeremy Brown
 
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
2015 bioinformatics python_introduction_wim_vancriekinge_vfinalProf. Wim Van Criekinge
 
Flextestingautomation 111116190906-phpapp02
Flextestingautomation 111116190906-phpapp02Flextestingautomation 111116190906-phpapp02
Flextestingautomation 111116190906-phpapp02Gokuldas Pillai
 
Digital Curation using Archivematica and AtoM: DLF Forum 2015
Digital Curation using Archivematica and AtoM: DLF Forum 2015Digital Curation using Archivematica and AtoM: DLF Forum 2015
Digital Curation using Archivematica and AtoM: DLF Forum 2015Artefactual Systems - AtoM
 
symfony_from_scratch
symfony_from_scratchsymfony_from_scratch
symfony_from_scratchtutorialsruby
 
symfony_from_scratch
symfony_from_scratchsymfony_from_scratch
symfony_from_scratchtutorialsruby
 

Similar to Ploneconf2012 talk (20)

Reusable Learning Objects: Designing and Archiving
Reusable Learning Objects: Designing and ArchivingReusable Learning Objects: Designing and Archiving
Reusable Learning Objects: Designing and Archiving
 
딥러닝프레임워크비교
딥러닝프레임워크비교딥러닝프레임워크비교
딥러닝프레임워크비교
 
Contextual Tour of Plone - (a top open source web content management system)
Contextual   Tour of Plone - (a top open source web content management system)Contextual   Tour of Plone - (a top open source web content management system)
Contextual Tour of Plone - (a top open source web content management system)
 
A Cloud-based Automated Authoring System to support e-Learning in Higher Educ...
A Cloud-based Automated Authoring System to support e-Learning in Higher Educ...A Cloud-based Automated Authoring System to support e-Learning in Higher Educ...
A Cloud-based Automated Authoring System to support e-Learning in Higher Educ...
 
Build Python CMS The Plone Way
Build Python CMS The Plone WayBuild Python CMS The Plone Way
Build Python CMS The Plone Way
 
Near real-time anomaly detection at Lyft
Near real-time anomaly detection at LyftNear real-time anomaly detection at Lyft
Near real-time anomaly detection at Lyft
 
S. Bartoli & F. Pompermaier – A Semantic Big Data Companion
S. Bartoli & F. Pompermaier – A Semantic Big Data CompanionS. Bartoli & F. Pompermaier – A Semantic Big Data Companion
S. Bartoli & F. Pompermaier – A Semantic Big Data Companion
 
14_Ed_Symp_Open_Source
14_Ed_Symp_Open_Source14_Ed_Symp_Open_Source
14_Ed_Symp_Open_Source
 
Introducing Matterhorn
Introducing MatterhornIntroducing Matterhorn
Introducing Matterhorn
 
2014.07.28 電子教科書のドリルをどうする!?
2014.07.28 電子教科書のドリルをどうする!?2014.07.28 電子教科書のドリルをどうする!?
2014.07.28 電子教科書のドリルをどうする!?
 
ElasTest presentation in MadridJUG (Madrid December 2017)
ElasTest presentation in MadridJUG (Madrid December 2017)ElasTest presentation in MadridJUG (Madrid December 2017)
ElasTest presentation in MadridJUG (Madrid December 2017)
 
Enabling accessible multimedia for Moodle: iMoot 2010
Enabling accessible multimedia for Moodle: iMoot 2010Enabling accessible multimedia for Moodle: iMoot 2010
Enabling accessible multimedia for Moodle: iMoot 2010
 
Dr. Tanvi FOCP Unit-2 Session-1 PPT (Revised).pdf
Dr. Tanvi FOCP Unit-2 Session-1 PPT (Revised).pdfDr. Tanvi FOCP Unit-2 Session-1 PPT (Revised).pdf
Dr. Tanvi FOCP Unit-2 Session-1 PPT (Revised).pdf
 
Open source ml systems that need to be built
Open source ml systems that need to be builtOpen source ml systems that need to be built
Open source ml systems that need to be built
 
Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015
Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015
Browser Fuzzing with a Twist (and a Shake) -- ZeroNights 2015
 
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
2015 bioinformatics python_introduction_wim_vancriekinge_vfinal
 
Flextestingautomation 111116190906-phpapp02
Flextestingautomation 111116190906-phpapp02Flextestingautomation 111116190906-phpapp02
Flextestingautomation 111116190906-phpapp02
 
Digital Curation using Archivematica and AtoM: DLF Forum 2015
Digital Curation using Archivematica and AtoM: DLF Forum 2015Digital Curation using Archivematica and AtoM: DLF Forum 2015
Digital Curation using Archivematica and AtoM: DLF Forum 2015
 
symfony_from_scratch
symfony_from_scratchsymfony_from_scratch
symfony_from_scratch
 
symfony_from_scratch
symfony_from_scratchsymfony_from_scratch
symfony_from_scratch
 

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? – International Training Centre of the International Labour Organization [1] [2] – The campus is based in Turin, Piedmont, Italy What it does? – Provides residential, on-line and on-the-field training to organizations and governments all around the world. Where Plone comes in? – Institutional portal – Intranet – E-learning platforms – Evaluation system [1] www.itcilo.org [2] www.ilo.org
  • 6. ITCILO The Plone bet – Security – Flexibility – TTW editing / scripting (pls don't throw this away!) – Powerful – Using since v1 (huge knowledge so far) – Unify platforms
  • 7. Projects ● Evaluation ● SCORM ● Course Area ● Conferences ● Selection ● Migrations
  • 8. Evaluation Questionnaires' evaluation system – Plone 3.1.5 + sqlalchemy + MySQL – 8 languages (no LP, multilanguagefields [1]) – Questions + legends archive – Course configuration (data from MySQL MAP) – Questionnaire customization – Per-questionnaire editable questions – Per-questionnaire resource person editable questions [1] http://pypi.python.org/pypi/raptus.multilanguagefields
  • 9. Evaluation Questionnaires' evaluation system – Customizable printing templates, headers, covers – Web stats – XLS export / stats – CSV import / export
  • 10. Evaluation Why Plone? – They knew it – I knew it – Completely integrated into the intranet – “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 – Multilanguage texts (in-place) – Multilanguage legends (in-place) – Demographic, mandatory, service or optional – XLS stats export settings – Customizable headers per set of questions (gender, organization, training, service)
  • 14. Evaluation Printing – Multilang selection – Different template per-language (r.multilangfields) – ODT templates to PDF (relatorio lib +OOo) – Custom multilang cover (specifica ATCT)
  • 16. Evaluation Import / Export – Import CSV (questionnaire results) – Export CSV (questionnaire results) – XLS export (results stats macro)
  • 17. Evaluation Web stats – Advanced search for filtering upon dates or activity code or models or technical program
  • 19. Evaluation PAX Session – token – When questionnaire's enabled for compilation a unique token is generated – Participants can then access the questionnaire using a specific URL for every language – When questionnaire's enabled for compilation all the token are deleted
  • 21. Evaluation Future – Multilang editable text – Flexible answer options – Flexible questionnaire web templates – TTW web template editor – 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 – 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] :) – 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 – Adaptation of ECAssignment ● Notifications – Per-content per-user settings with manager override ● SCORM ● Selection – 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 – ATCT ● for Selection, Session, SubSession, Track objects – 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 – Contraints ● Track availability constrained on max PAX per track and duplicated selection – Results ● Web ● CSV export
  • 29. Migrations ITICILO.org – 3.3.6 → 4.1 – 4 languages – Custom content types and portlets – Badly broken DB connection – quintagroup.transmogrifier ● All went well except for a ton of XML marshalling error – Up and running pretty fast without tuning!
  • 30. Migrations MMW.ITCILO.ORG – 2.1 → 4.1 – 7 languages (including Bahasa Indonesia, Tiếng Việt, Русский ) – Plone Article, Lingua Plone, Plone ExFile, Remember + Membrane, Ploneboard, Custom ATCTs for Member, Courses, etc – A lot of scripts and templates into skins layers – No portal_setup – ...all the stuff you need for making a migration a pure hell :) – c.transmogrifier + json to the rescue
  • 31. Migrations ACTRAV.ITCILO.ORG: PHP4 → Plone 4.2 – Was hacked and broken every now and then – Multilang (LinguaPlone) – Very bad URLs – Custom pipeline for Funnelweb [1] collective.transmogrifier [2] – 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

  1. 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