Esempio n. 1
0
    def get_context_data(self, **kwargs):
        """Update context data to add publication."""
        context = super(DataDepotPublishedView,
                        self).get_context_data(**kwargs)
        logger.info('Get context Data')
        pub = Publication(project_id=kwargs['project_id'].strip('/'))
        logger.debug('pub: %s', pub.to_dict())
        context['citation_title'] = pub.project.value.title
        context['citation_date'] = pub.created
        context['doi'] = pub.project.doi
        context['keywords'] = pub.project.value.keywords.split(',')
        context['authors'] = [{
            'full_name':
            '{last_name}, {first_name}'.format(last_name=user['last_name'],
                                               first_name=user['first_name']),
            'institution':
            getattr(getattr(user, 'profile'), 'institution', '')
        } for user in pub.users]
        context['publication'] = pub

        if self.request.user.is_authenticated:
            context['angular_init'] = json.dumps({
                'authenticated': True,
            })
        else:
            context['angular_init'] = json.dumps({
                'authenticated': False,
            })
        return context
Esempio n. 2
0
 def get(self, request, project_id):
     pub = Publication(project_id=project_id)
     if pub is not None and hasattr(pub, 'project'):
         return JsonResponse(pub.to_dict())
     else:
         return JsonResponse({'status': 404,
                              'message': 'Not found'},
                              status=404)
Esempio n. 3
0
def save_publication(self, project_id):
    from designsafe.apps.api.agave.filemanager.public_search_index import Publication
    from designsafe.apps.api.projects.managers import publication as PublicationManager
    try:
        pub = Publication(project_id=project_id)
        publication = PublicationManager.reserve_publication(pub.to_dict())
        pub.update(**publication)
    except Exception as exc:
        logger.error('Proj Id: %s. %s', project_id, exc, exc_info=True)
        raise self.retry(exc=exc)