def load_publications(): try: with open(app.config['PUBLICATIONS_FILE'], 'r') as publication_data_file: publications = Publications.from_yaml(publication_data_file.read()) logging.info("Loaded publications from %s" % app.config['PUBLICATIONS_FILE']) except IOError: logging.warning("Could not open %s to read publications" % app.config['PUBLICATIONS_FILE']) publications = Publications([]) except Exception as e: logging.error("There was a problem parsing publications from %s" % app.config['PUBLICATIONS_FILE'], exc_info=e) publications = Publications([]) return publications
def user_page(user_id): if not user_id in users: return render_template('affiliated.html', publications=Publications(), users=users, user_title="Unknown user", download_link='#'), 404 return render_template( 'affiliated.html', publications=publications.filter_by_user_id(user_id), users=users, user_title="Publications for %s" % users[user_id].full_name(), download_link=url_for('download', user_id=user_id))
def missing(): """Hidden URL for missing publications I've intentionally not publicised this feature because it makes lots of HTTP requests to the Sanger website and I probably only want me / administrators to use it on an infrequent basis. This endpoint lists all of the publicatons which are currently not in the Sanger Library's dataset""" library_pubmed_ids = set(LibrarySearcher.get_pubmed_ids()) possible_pubmed_ids = set(publications.not_denied().keys()) missing_pubmed_ids = possible_pubmed_ids.difference(library_pubmed_ids) missing_publications = Publications( [publications[pubmed_id] for pubmed_id in missing_pubmed_ids]) return render_template('affiliated.html', publications=missing_publications, users=users, user_title="Publications not in the Sanger Library")