davebridges / lab-website Goto Github PK
View Code? Open in Web Editor NEWdjango based code for a lab website.
License: MIT License
django based code for a lab website.
License: MIT License
contact, feeds, location, people, people-details, projects and project-details are all not having their title tags read by google webmaster tools.
The canonical url is the "Correct" URI for a page, and the thing that is liked, shared or plus-one'd
see this for more information
http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html
The canonical url should be whatever the page is, with the possible exception of paper pages where the canonical url could be the paper.
Should be now using the builtin facebook like button. Follow the instructions here: https://developers.facebook.com/docs/reference/plugins/like/migration/
Add fields for social media information in the Person model. To make full use of these I can use public API's to get information from twitter/google plus/facebook.
For one we can get potential profile photos from each of these services (see also issue #30)
Put a info box on the home and personnel page when we are actively recruiting people.
Needs to be able to do Crossref or Mendeley API calls based on the DOI, PMID or Mendeley ID to fill in most fields.
Tweets sent manually should include twitter cards. For examples see
https://dev.twitter.com/blog/twitter-cards-tips-tricks
For instructions see:
Using Sphinx documentation and docstrings. Document roadmaps in the init.py file of each package. Correct cross-reference formats are:
papers
for a package~papers.models.Publication
for a classUsing Sphinx documentation and docstrings. Document roadmaps in the init.py file of each package. Correct cross-reference formats are:
papers
for a package~papers.models.Publication
for a classRelease notes are here: https://docs.djangoproject.com/en/dev/releases/1.5/
Using Sphinx documentation and docstrings. Document roadmaps in the init.py file of each package. Correct cross-reference formats are:
papers
for a package~papers.models.Publication
for a classShould set up RSS feeds for:
Need to make sure the social media widgets and encoding work, even if social media sites are not specified
Get rid of that on the left sidebar and put on a separate page. Will probably also involve refactoring the base template (see issue #27)
This page will give information about the lab's location, department and institution. Should also integrate some photographs of the lab.
Rather than directly posting and saving status updates, can use the facebook status update infrastructure to post and display status updates as news items. Can get and display these status updates using the facebook api: https://developers.facebook.com/docs/reference/api/status/
incorporate Mendeley, Altmetric and PLOS API's where applicable. Will hold all authored and interesting papers.
on Personnel details page
Need to use a custom User model for Personnel, rather than extending the UserProfile model. This is part of the upgrade to Django version 1.5, though AUTH_USER_MODEL will just be deprecated. Information on custom user models are here https://docs.djangoproject.com/en/dev/topics/auth/#auth-custom-user
Follow API authentication set up in c6ca19b and get two new twitter feeds:
These can both be rendered like the user_timeline rendering set up in 8a2173b
Facebook notes can be posted on the lab facebook page (not app). This allows for formatting, inclusion of pictures, etc. Information about facebook notes is here: https://www.facebook.com/help/488014787881885/
These notes can then be retrieved using the facebook API: https://developers.facebook.com/docs/reference/api/note/ and then displayed as if a normal blog post. Some HTML formatting is allowed in posts.
Will need to check with the terms of use for the facebook API to make sure that crossposting is ok.
ORCID IDs are defined in http://orcid.org/ will need to validate the field to be the correct format. Can use this go generate links to an ORCID profile
This is to assign the correct thing that is liked and descriptions.
The idea is that for most pages, the like button refers to the main page on the root domain. This should be the http://yourserver/ domain for pages in the footer with the metadata for the main lab page and description.
For internal like buttons (like papers) then the metadata should be the title/description of the paper. For google plus I will use schema.org markup as recommended by https://developers.google.com/+/plugins/snippet/. The url is defined by the href attribute of the button and the metadata is set by that target url. That means for papers, if the target url is the DOI then the DOI sets the metadata.
This will be the facebook integration part, with only relevant lab news being posted. Twitter will be used for more conversational, and link sharing.
From the /news page, need to find a better way to display shared links. They are not currently displayed
In commit 3c6a4c0 a remote file was obtained, then parsed into HTML for display. This seems like the best way to generically put in lab content. The workflow would be:
For some information on custom mixins see:
Need to generate a functional landing page.
This page will be the first thing that a person sees and should contain links to the relevant portions of the page, such as the papers, research and personnel sections.
Some ideas for good landing pages are at http://pimm.wordpress.com/2007/04/16/how-does-a-good-laboratory-homepage-look-like-show-me-at-least-one/
Automatically generate metrics for articles. Someday also incorporate citations
Using Sphinx documentation and docstrings. Document roadmaps in the init.py file of each package. Correct cross-reference formats are:
papers
for a package~papers.models.Publication
for a classIf a paper is in a PLOS journal then we can use the PLOS API altmetrics. For more information see http://api.plos.org/alm/using-the-alm-api/. This can bring in information from several other sources not only just reads/downloads from the PLOS website.
The best approach is probably to do a test in the template if an article is a PLOS article and then load this data if it is.
Since the role includes the start date, it is specific to each investigator
As part of issue #18, add a rss feed for papers by each person.
This will be linked from the papers section on each personnel-detail page.
Will need a new model, licence and a field for displaying that information on a paper, or a commentary. This should display the licence logo if available and a link to the full text of that license.
Make sure there are model and view tests for all apps
As links to /research/ some indication of lab projects. There will be a list of projects and then a detailed page for each project. The project model will need links to papers, and personnel. Eventually there might be links to images and datasets.
Use SCoRO ontology to mark as optional contributions
http://www.essepuntato.it/lode/http://purl.org/spar/scoro
This would have to be a an optional ManyToMany field between Scholary Roles/Contributions and the AuthorDetails page.
use jquery or something to automatically turn string text into links for:
maybe use the Jquery linkify tool for this. See http://www.dave-smith.info/jquery.linkify/
I want to enable a REST API for papers and for personnel, and eventually for projects. I will use django-tastypie to set up the API and use backbone.js for the displays
Using the same sort of code used for lab-rules, new pages for authorship and publication policies will need to be created. This will include test cases as well.
For Twitter API 1.1: https://dev.twitter.com/blog/changes-coming-to-twitter-api
Make a snippet as part of the personnel app which displays the photo of the person, plus their name and their current position in the lab. This will be used on the homepage, personnel list page, on the project-detail page and on paper-detail pages. There will be a consistent layout for all of these images.
at a minimum, use the wikipedia API to generate a list of recent edits by a user (or users). Ideally, also re-display those pages which we are interested in. Also list out some summary statistics of wikipedia usage.
For more details about the wikipedia API see http://www.mediawiki.org/wiki/API
Figure out how to properly integrate google authorship and publisher metadata
Need to determine what license is eligible, and add code back for social media buttons.
To papers app, add a new model which is a linked item. This is a post somewhere else discussing the paper such as a commentary, a blog post or a F1000 review. It could optionally include a button such as the F1000 logo. This would be shown on each article page as a link and would have no view of its own. This could only be added by an authorized user.
This should be a commentary that a particular user generates on a paper. Potentially this could be incorporated into the OpenGraph as long as the writer is appropriately credentialed on facebook. This commentary could have separate like and plus1 buttons if possible. For details on facebook like see: https://developers.facebook.com/docs/opengraph/actions/builtin/likes/
Includes feed-details, lab-rules, twitter-timeline, calendar and wikipedia
Three potential options for a profile photo, and to select this there will need to be a new field in the Person model which is a choice between these six things:
If the user selects option 3, and selects one of those four options then there needs to be validation such that there is a valid unique identifier.
There will also need to be method for each user to get_image_url. This method will have to do one of the following in order:
There will also need to be a view where a user can log in and change the user photo.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.