**************************
djangocms-lab-publications
**************************
``djangocms-lab-publications`` is a Django app for adding sets of scientific publications with PubMed metadata to a Django site with django CMS-specific features. It uses ``pubmed-lookup`` to query PubMed using PubMed IDs or PubMed URLs.
Source code is available on GitHub at `mfcovington/djangocms-lab-publications <https://github.com/mfcovington/djangocms-lab-publications>`_. Information about and source code for ``pubmed-lookup`` is available on GitHub at `mfcovington/pubmed-lookup <https://github.com/mfcovington/pubmed-lookup>`_.
.. contents:: :local:
Installation
============
**PyPI**
.. code-block:: sh
pip install djangocms-lab-publications
**GitHub**
.. code-block:: sh
pip install https://github.com/mfcovington/djangocms-lab-publications/releases/download/0.1.5/djangocms-lab-publications-0.1.5.tar.gz
Configuration
=============
- `Install django CMS and start a project <http://docs.django-cms.org/en/latest/introduction/install.html>`_, if one doesn't already exist.
- Unless you use this app as part of `djangocms-lab-site <https://github.com/mfcovington/djangocms-lab-site>`_ or plan to style the app from scratch, you will want to choose the ``Use Twitter Bootstrap Theme`` option (when running ``djangocms``) and then edit the resulting ``templates/base.html``. This will add style that looks like Bootstrap 2. To use Bootstrap 3 styling, remove the following line for the ``bootstrap-theme.min.css`` stylesheet from ``templates/base.html``:
.. code-block:: python
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.x.x/css/bootstrap-theme.min.css">
- Do the following in ``settings.py``:
- Add ``cms_lab_publications`` and its dependencies to ``INSTALLED_APPS``:
.. code-block:: python
INSTALLED_APPS = (
# ...
'taggit',
'taggit_helpers',
'cms_lab_publications',
'easy_thumbnails',
'filer',
'mptt',
)
- Add ``easy_thumbnail`` settings:
.. code-block:: python
# For easy_thumbnails to support retina displays (recent MacBooks, iOS)
THUMBNAIL_HIGH_RESOLUTION = True
THUMBNAIL_QUALITY = 95
THUMBNAIL_PROCESSORS = (
'easy_thumbnails.processors.colorspace',
'easy_thumbnails.processors.autocrop',
'filer.thumbnail_processors.scale_and_crop_with_subject_location',
'easy_thumbnails.processors.filters',
)
THUMBNAIL_PRESERVE_EXTENSIONS = ('png', 'gif')
THUMBNAIL_SUBDIR = 'versions'
- If ``cms_lab_publications`` is used in a project served by Apache, a config directory must be created within the Apache user's home directory. This config directory is used by code within biopython's ``Bio.Entrez.Parser.DataHandler`` which is used by ``pubmed_lookup``, a dependency of ``cms_lab_publications``.
.. code-block:: sh
# In this snippet, the Apache user is 'www-data' and
# the Apache user's home directory is '/var/www/'
sudo su - root
cd /var/www/
chown :www-data
chmod g+s
mkdir -p /var/www/.config/biopython/Bio/Entrez/DTDs
Migrations
==========
Create and perform ``cms_lab_publications`` migrations:
.. code-block:: sh
python manage.py makemigrations cms_lab_publications
python manage.py migrate
Usage
=====
- Start the development server:
.. code-block:: sh
python manage.py runserver
- Visit: ``http://127.0.0.1:8000/``
- Create a CMS page.
- Insert the ``Publication Set Plugin`` into a placeholder field.
*Version 0.1.5*
Revision History
================
0.1.5 2015-11-09
- Fix styling of vertical filter selector buttons and boxes in response to changes in ``djangocms-admin-style``
- Add bottom margin to non-paginated publication lists
- Remove 'Abstract' button from modal
- Resolve Django 1.8 warnings
- Update README with more complete and accurate instructions
0.1.4 2015-06-24
- Allow manual entry of Publications that don't have a PubMed ID
- Use django-taggit-helpers in admin
- Rename deprecated queryset method
- Configure bumpversion & wheel for easier distribution
- Convert README and changelog to reStructuredText for distribution via PyPI
- Minor changes to admin interface
- Change pagination description to 'pubs per page'
- Add/update help text for 'tags' and 'pagination'
0.1.3 2015-06-03
- Allow bulk PubMed queries for a Publication Set
- Allow a Publication Set to be created without publications
- Default to no pagination (hides page '1' button for short publication sets)
- Set default Publication Set label to 'Publications'
- Admin improvements
- Publication Admin
- Reorder Publication Admin's inlines
- Add year and PubMed ID to Publication Admin search field
- Display (and sort by) # of Publication Sets in Publication Admin
- Publication Set Admin
- In Publication Set Admin, move publications from a tabular inline to a vertical filter
- Reorder Publication Set Admin's list display items
- Filter Publication Set records by whether its Bulk PubMed Query failed
- Display whether a Publication Set's Bulk PubMed Query status is OK
- Other
- Update and improve layout of help text
- Add short descriptions for custom list display items
- Add docstring for MissingAttachmentListFilter
0.1.2 2015-05-27
- Expand documentation for installation and configuration
- Add mini_citation field to Publication
- Helps identify publication when in edit mode (without expanding PubMed Metadata fieldset)
- Helps naming associated files (PDF, Supplemental, and Image) by providing a base name
- Bumps ``pubmed-lookup`` dependency to version 0.1.1
- Many improvements to Publication and Publication Set Admins
- Rearrange Publication Admin fieldsets
- Add PublicationSetInline to PublicationAdmin
- Add save button across tops of Publication and Publication Set Admins
- Now Powered by Blackina
- Display whether a record has PDF/Supp/Image attachments in Publication Admin
- Filter PublicationAdmin by missing/existing attachments
- Filter Publication and Publication Set Admins by tags for the current model only
- Show (and sort by) 'number of publications' for records in Publication Set Admin
0.1.1 2015-05-23
- Allow multiple Publication Set plugins per page
- Use Publication Set's name, not label, for ``__str__`` and ordering
0.1.0 2015-05-22
- A Django app for adding sets of scientific publications with PubMed metadata to a Django site with django CMS-specific features