Personal tools
You are here: Home Software StudyGuide
Log in


Forgot your password?
 

StudyGuide

— filed under: ,

See www.plone.org/products/studyguide for latest releases.

Here's what the output looks like.

LICENSE

  • GPL: See StudyGuide.py header.

CREDITS

  • developers of DataGridField and its widgets, e.g., Mikko Ohtamaa
  • developers of DIYPloneStyle and its generator.py script, e.g., Dave Convent
  • Martin Aspeli's RichDocument and the tutorial for that product

AUTHORSHIP

  • initial coding: Jeff Pittman, http://www.geojeff.org

DESCRIPTION

StudyGuide presents a list of items for rating knowledge level during study and for taking short notes for each item. It is meant to offer a means of record-keeping of study and of checking off items when confident.

REQUIREMENTS

  • DataGridField

PLATFORM NOTES

  • Development has been done on a Mac with Plone 2.5.1 and DataGridField 1.5.0, and deployment to a linux server.

INSTALLATION

  1. Put StudyGuide somewhere on your filesystem.
  2. Inside StudyGuide is a bin directory with generator.py. This script copies StudyGuide files and directories into a new product for which you need to provide the product name and a text file of stx-formatted (stx = structured text) items, separated by blank lines. For example, here's how it was run to generate a study guide for a college exam (working directory was StudyGuide itself):
           ./bin/generator.py --productname=StudyGuideP1 
                              --authorstring='Jeff Pittman <geojeff@geojeff.org>' 
                              -v 
                              --stxfile=/[... path ...]/exam-1-notes.txt 
    
         After running that, I had a new product in a parallel directory to
         the StudyGuide directory, called StudyGuideP1, ready for deployment.
    
         If you run generator.py without the --stxfile parameter, you'll get
         a generic outline for content, showing various ways structured text
         can work in this scenario::
    
           ./bin/generator.py --productname=StudyGuideP1 
                              --authorstring='Jeff Pittman <geojeff@geojeff.org>' 
                              -v 
    
         You will get the same default generic outline of items for content if
         you simply add StudyGuide itself as a product and add a StudyGuide instance.
    
  3. Put your new StudyGuide-based product in your Zope Products directory.
  4. Restart Zope.
  5. Install your StudyGuide-based product into your Plone site.

BUGS AND FEATURE REQUESTS

Please report bugs and feature requests to Jeff Pittman, who can be reached at geojeff@geojeff.org. Jeff is often on the #plone irc channel as geojeff.

IDEAS

  • I am considering modifying this system into a product called QuestionSet, and perhaps another called TermSet.
  • For each item, a button or link could be preloaded with information about the item, ready to fire to a forum entry page or to the user's email program, for doing student-to-teacher round-trip interaction. The forum solution is more attractive because, at least for my needs, it would be better not to interact with students via their personal email accounts, but inside the Zope/Plone environment.
  • LinkColumn in DataGridField has a style for two inputs, one on top of the other. This sort of "stacked" input boxes could be very useful in making a more complicated form, based on a mark-up scheme for the basic data presented (A complicated input form for each item could be repeated in a list, perhaps differently for each item in the list).
  • Investigate use of restructured text in an example. Have ItemsColumn take a rest document as input (or make a new column type), and see how the parsing can be "intercepted" to "itemize" the output. Headings markup in rest is based on the flow of the entire document, as for such things as terms marked with |term|, footnotes, substitutions, and so on, so some sort of item-discovery step would need to be done by whole-document parsing.

TODO

  • Add a parameter to FixedWidthColumn for width! (and also make it command line parameter to generator.py).
  • What to do about height for FixedWidthColumn?
  • Add a way to exclude items from the knowledge_level radio button treatment.
  • Add logic for setting and unsetting knowledge_level programmatically in a simple top-down flow, based on indentation.
Document Actions