wiki:Atom Editor Overview

Version 4 (modified by cbyrom, 10 years ago) (diff)

--

Atom Editor Overview

The Atom Syndication Format is a simple, extensible format - outlined here Moles Atom Format.

To aid the uptake of this new format, a web based editor is now available to allow the creation and editing of moles records in Atom format; this sits inside the MILK server codebase whose installation is described here: MILK Install guide.

Codebase overview

The editor is created as part of a standard pylons web app - which makes up the heart of the MILK codebase. To simplify maintenance, the editor specific code is situated in subpackages of the main pylons packages - i.e. controllers/atom_editor. The presentation layer of the web app is provided using Genshi templates - and these, too, are located in their own specific subpackage - templates/atom_editor. The data models used by the pages (effectively the Atom? class augmented with 'non-Atom' specific data in the MolesEntity? class) are available from the ndgUtils egg (subject to change?). The validation helper class is also available from ndgUtils.

The two main controllers are as follows:

atom_editor/listatom.py

Provides functionality to render:

  • atom editor home page - with the following links:
    • create a new atom
    • upload a granulite to create a new atom
    • edit/list atoms
    • display help pages + example granulite file
  • edit/list atoms - allows searching of atoms by provider ID/type/text content. NB, this is also used when associated atoms with each other - e.g. when selecting data granules to associate with data entities.
  • additionally, provides a service to retrieve the contents of specified feeds

The associated templates are:

  • atom_home.html
  • atom_granulator.html
  • atom_list.html
  • atom_help.html
  • granulite_example.html

atom_editor/editatom.py

Provides functionality to render:

  • create atom page - to create a new atom by specifying the basic header info: provider ID, type and title
  • create atom from granulite page - to allow upload of granulite file with CSML/CDML file - and subsequent creation of granule atom
  • view/edit atom data page

Additionally, these two controllers inherit from the superclass, atomeditorcontroller.py, which provides shared functionality.

Further info on the editor is available at:  http://proj.badc.rl.ac.uk/badc/wiki/opman/Editor