ESciDoc Admin
eSciDoc admin is a a solution for the management of master data in an installation of the eSciDoc framework. Currently it is implemented as TurboGears web application talking to the framework's REST interface.
It implements (parts of) the use cases specified in
- PubMan_Func_Spec_Organizational_Unit_Management
- PubMan_Func_Spec_Collection_Administration
- PubMan_Func_Spec_User_Management
Repository URL: https://subversion1.escidoc.mpg.de/admin/
Installation/Deployment[edit]
Requirements[edit]
- Python (>= 2.4),
- TurboGears (see http://docs.turbogears.org/1.0/Install for details),
- SQLAlchemy (install with easy_install),
- it may be necessary to upgrade to a newer version of pysqlite,
- httplib2
Installation[edit]
To run escidocadmin from a repository checkout, run
svn co https://subversion1.escidoc.mpg.de/admin/trunk/escidocadmin
in a suitable directory.
Architecture[edit]
escidocadmin - as a web interface to the framework's CRUD services for its resources - has a very simple architecture:
- All communication with the framework is implemented in a framework client library
- As a !TurboGears aplication, escidocadmin subscribes to the MVC pattern, or better the VC pattern, because the persistence layer is implemented by the framework.
- The management logic for each resource is implemented in one controller class.
- The views for each resource are implemented in one (or several) templates.
HowTo: Sample data upload[edit]
On the machine from where you start the upload (Admin interfaces code and libraries must be previously installed on that machine)
1. position on escidocadmin directory (e.g. Linux: cd escidocadmin) 2. refresh from Subversion repository (e.g. Linux: svn up ) 3. position on the escidocadmin/lib directory (e.g. Linux: cd escidocadmin/lib) 4. invoke the python interactive interpreter (e.g. Linux: python ) 5. and then run the python commands given below
>>> import framework >>> import sample_data >>> c = framework.Client('<hostip:port>', '<admin-username>', '<admin-password>') >>> sample_data.insert(c)