Пример #1
0
 def get_unified_document(self, comment):
     from researchhub_document.serializers import (
         DynamicUnifiedDocumentSerializer)
     context = self.context
     _context_fields = context.get('dis_dcs_get_unified_document', {})
     serializer = DynamicUnifiedDocumentSerializer(comment.unified_document,
                                                   context=context,
                                                   **_context_fields)
     return serializer.data
Пример #2
0
 def get_unified_document(self, obj):
     from researchhub_document.serializers import (
         DynamicUnifiedDocumentSerializer)
     context = self.context
     _context_fields = context.get('rev_drs_get_created_by', {})
     serializer = DynamicUnifiedDocumentSerializer(obj.unified_document,
                                                   context=context,
                                                   **_context_fields)
     return serializer.data
Пример #3
0
 def get_source(self, citation):
     context = self.context
     _context_fields = context.get('hyp_dcs_get_source', {})
     serializer = DynamicUnifiedDocumentSerializer(
         citation.source,
         context=context,
         **_context_fields
     )
     return serializer.data
Пример #4
0
    def get_unified_document(self, obj):
        from researchhub_document.serializers import DynamicUnifiedDocumentSerializer

        serializer = DynamicUnifiedDocumentSerializer(
            obj.unified_document,
            _include_fields=['id', 'reviews'],
            context={},
            many=False)

        return serializer.data
Пример #5
0
def preload_trending_documents(
    document_type,
    hub_id,
    filtering,
    time_scope,
):
    from researchhub_document.views import ResearchhubUnifiedDocumentViewSet
    from researchhub_document.serializers import (
        DynamicUnifiedDocumentSerializer)

    if time_scope == 'all_time':
        cache_pk = f'{document_type}_{hub_id}_{filtering}_all_time'
    elif time_scope == 'year':
        cache_pk = f'{document_type}_{hub_id}_{filtering}_year'
    elif time_scope == 'month':
        cache_pk = f'{document_type}_{hub_id}_{filtering}_month'
    elif time_scope == 'week':
        cache_pk = f'{document_type}_{hub_id}_{filtering}_week'
    else:  # Today
        cache_pk = f'{document_type}_{hub_id}_{filtering}_today'

    query_string_filtering = 'top_rated'
    if filtering == 'removed':
        query_string_filtering = 'removed'
    elif filtering == '-score':
        query_string_filtering = 'top_rated'
    elif filtering == '-discussed':
        query_string_filtering = 'most_discussed'
    elif filtering == '-created_date':
        query_string_filtering = 'newest'
    elif filtering == '-hot_score':
        query_string_filtering = 'hot'

    request_path = '/api/paper/get_hub_papers/'
    if STAGING:
        http_host = 'staging-backend.researchhub.com'
        protocol = 'https'
    elif PRODUCTION:
        http_host = 'backend.researchhub.com'
        protocol = 'https'
    else:
        http_host = 'localhost:8000'
        protocol = 'http'

    query_string = 'page=1&time={}&ordering={}&hub_id={}&'.format(
        time_scope, query_string_filtering, hub_id)
    http_meta = {
        'QUERY_STRING': query_string,
        'HTTP_HOST': http_host,
        'HTTP_X_FORWARDED_PROTO': protocol,
    }

    document_view = ResearchhubUnifiedDocumentViewSet()
    http_req = HttpRequest()
    http_req.META = http_meta
    http_req.path = request_path
    req = Request(http_req)
    document_view.request = req

    documents = document_view.get_filtered_queryset(document_type, filtering,
                                                    hub_id, time_scope)
    page = document_view.paginate_queryset(documents)
    context = document_view._get_serializer_context()
    serializer = DynamicUnifiedDocumentSerializer(
        page,
        _include_fields=[
            'created_by',
            'created_date',
            'documents',
            'document_type',
            'hot_score',
            'hot_score_v2',
            'reviews',
            'score',
            'id',
        ],
        many=True,
        context=context,
    )
    serializer_data = serializer.data

    paginated_response = document_view.get_paginated_response(serializer_data)

    cache_key_hub = get_cache_key('hub', cache_pk)
    cache.set(cache_key_hub, paginated_response.data, timeout=None)

    return paginated_response.data
 def get_unified_document(self, hypothesis):
     context = self.context
     _context_fields = context.get('hyp_dhs_get_unified_document', {})
     serializer = DynamicUnifiedDocumentSerializer(
         hypothesis.unified_document, context=context, **_context_fields)
     return serializer.data
 def get_unified_document(self, notification):
     context = self.context
     _context_fields = context.get('not_dns_get_unified_document', {})
     serializer = DynamicUnifiedDocumentSerializer(
         notification.unified_document, context=context, **_context_fields)
     return serializer.data