Пример #1
0
    def get(self, request, model_id, entry_id, service_slug, object_id):
        action = "album"

        content_type = get_object_or_404(ContentType, pk=model_id)
        service = get_service_from_slug(service_slug)
        service.record_results = True
        entry = get_object_or_404(content_type.model_class(), pk=entry_id)

        res = service.search_by_album_id(object_id, entry=entry)

        return render(request, 'mapper/results/results_media.html', {
            "results": res,
            "entry": entry,
            "service": service,
            "action": action,
            "content_type": content_type,
        })
Пример #2
0
    def get(self, request, model_id, entry_id, service_slug, object_id):
        content_type = get_object_or_404(ContentType, pk=model_id)
        service = get_service_from_slug(service_slug)
        entry = get_object_or_404(content_type.model_class(), pk=entry_id)
        object = service.get_object(object_id)

        if not request.user.is_staff:
            raise Http404 

        try:
            media_entry = MediaEntry.objects.get(media=object, content_type=content_type, object_id=entry.id)
        except MediaEntry.DoesNotExist:
            media_entry = None

        media_types = MediaType.objects.all()

        return render(request, 'mapper/results/%s_preview.html' % TYPE_ID_TO_SLUG[object.type], {
            "entry": entry,
            "object": object,
            'content_type': content_type,
            'service': service,
            'media_entry': media_entry,
            'media_types': media_types,
            })
Пример #3
0
    def post(self, request, model_id, entry_id):
        service_slug = request.POST.get('service_slug', False)
        action = request.POST.get('action', False)
        keyword = request.POST.get('keyword', False)
        search_type = request.POST.get('search_type', False)
        content_type = get_object_or_404(ContentType, pk=model_id)
        
        if not request.user.is_staff:
            raise Http404   

        page = int(request.POST.get('num', 1))
        if not (service_slug or action or keyword):
            return HttpResponse("{'error' :  Service, Action or Keyword not found'}")

        entry = content_type.model_class().objects.get(pk=entry_id)
        service = get_service_from_slug(service_slug)
        service.record_results = True

        if action == "keyword":
            res = service.search_by_keyword(keyword, page=page, entry=entry, return_objects=True)
            search_type = "media"
        elif action == "user":
            if search_type == "media":
                res = service.search_by_username(keyword, page=page, entry=entry, return_objects=True)
            else:
                res = service.search_albums_by_username(keyword, page=page, entry=entry, return_objects=True)

        if page * service.api.NB_RESULTS_PER_PAGE < res['index']['total_results']:
            next_page = page + 1
        else:
            next_page = False

        context = {"results": res, "entry": entry, "service": service, "action": action, "keyword": keyword,
                   "page": page, "next_page": next_page, "search_type": search_type, "content_type": content_type }

        return render(request, 'mapper/results/results_%s.html' % search_type, context)