django-zotero

Django tool to tag objects and export them to Zotero


Keywords
zotero, django, admin, tag, meta, metatag
License
MIT
Install
pip install django-zotero==0.4

Documentation

django-zotero

django-zotero is a django app that provides a generic formset to tag any django object with Zotero metadata. Tagged object are easily exportable to Zotero in one click.

Installation

First of all, it is needed to have pip installed on your system. It is strongly recommended to install virtualenv and virtualenvwrapper to take the most advantage of pip.

To install pip, go to http://www.pip-installer.org/en/latest/installing.html

To install virtualenv, go to https://pypi.python.org/pypi/virtualenv

To install virtualenvwrapper, go to http://virtualenvwrapper.readthedocs.org/en/latest/install.html#basic-installation

Now install django-zotero:

$ pip install django-zotero

Usage

To use django-zotero, follow the next steps:

  1. Django settings: add the app name to INSTALLED_APPS in settings.py:

    INSTALLED_APPS = (
        #...,
        'zotero',
    )
    
  2. Administration side: add the following code to admin.py:

    1. Import the class TagInlineAdmin [1]:

      from zotero.admin import TagInlineAdmin
      
    2. For each model you wish to tag, add to its admin class:

      inlines = (
          #...,
          TagInlineAdmin,
      )
      
  3. User side: add the following code:

    1. In views.py:

      1. Import the function get_tag_formset [2]:

        from zotero.forms import get_tag_formset
        
      2. In the view that manages the tagged object, instanciate the formset and save it:

        tag_formset = get_tag_formset(
            obj=form.instance,
            data=request.POST,
            show_labels=False,
            labels={
                'item_type': 'Document type',
                #...,
            }
        )
        #...
        tag_formset.save()
        
    2. In the template that manages the object:

      1. Import the template tag zotero_inline_tags [3]:

        {% load zotero_inline_tags from zotero_inline_extras %}
        
      2. Render the formset:

        {% zotero_inline_tags formset %}
        
    3. In the template that renders the object:

      1. Import the template tag zotero_tags [4]:

        {% load zotero_tags from zotero_tags_extras %}
        
      2. Render Zotero metadata:

        {% zotero_tags
            object=document
            vocabulary="dc"
            output_method="meta" %}
        
[1] TagInlineAdmin is an inline class ready to be added as inline of other admin class.
[2]

get_tag_formset is a function that gets the formset with Zotero tags for an object. It is based on a generic formset factory and takes four arguments:

  1. obj: object to tag
  2. data: data to instanciate the content of the formset
  3. show_labels: if true, show the labels as headers on the top of the formset; if false, show the labels as placeholders
  4. labels: set alternative labels - default labels are 'item_type', 'field' and 'value'
[3] zotero_inline_tags is a template tag that renders a formset. It takes one argument: the formset it renders.
[4]

zotero_tags is a template tag that renders the HTML code of Zotero metadata. It takes three arguments:

  1. object: tagged object
  2. vocabulary: the vocabulary to code the metadata - currently it works with Dublin Core ("dc")
  3. output_method: the method to code the metadata - currently it works HTML <meta> tags ("meta")