コード例 #1
0
    def load_popular_videos_volunteer(self, sort, request, user):
        sort_types = {
            'today': 'today_views',
            'week': 'week_views', 
            'month': 'month_views', 
            'year': 'year_views', 
            'total': 'total_views'
        }

        sort_field = sort_types.get(sort, 'week_views')

        rel, rest = self._get_volunteer_sqs(request, user)

        rel = rel.order_by('-%s' % sort_field)[:5]
        rest = rest.order_by('-%s' % sort_field)[:5]

        count = rel.count() + rest.count()

        mqs = MultiQuerySet(rel, rest)
        mqs.set_count(count)

        context = {
            'video_list': mqs
        }

        content = render_to_string('videos/_watch_page.html', context, RequestContext(request))

        return {
            'content': content
        }
コード例 #2
0
ファイル: models.py プロジェクト: crodjer/mirosubs
    def get_videos_for_languages_haystack(self, languages):
        from utils.multi_query_set import MultiQuerySet

        languages.extend(
            [l[:l.find('-')] for l in languages if l.find('-') > -1])
        languages = list(set(languages))

        pairs_m, pairs_0, langs = [], [], []
        for l1 in languages:
            langs.append(SQ(content='S_{0}'.format(l1)))
            for l0 in languages:
                if l1 != l0:
                    pairs_m.append(self._lang_pair((l1, l0), "M"))
                    pairs_0.append(self._lang_pair((l1, l0), "0"))

        qs_list = []
        qs_list.append(self._filter(self._base_sqs(), pairs_m))
        qs_list.append(
            self._exclude(self._filter(self._base_sqs(), pairs_0), pairs_m))
        qs_list.append(
            self._exclude(
                self._base_sqs().filter(original_language__in=languages),
                pairs_m + pairs_0).order_by('has_lingua_franca'))
        qs_list.append(
            self._exclude(self._filter(self._base_sqs(), langs), pairs_m +
                          pairs_0).exclude(original_language__in=languages))
        qs_list.append(
            self._exclude(self._base_sqs(), langs + pairs_m +
                          pairs_0).exclude(original_language__in=languages))
        mqs = MultiQuerySet(*[qs for qs in qs_list if qs is not None])
        # this is way more efficient than making a count from all the
        # constituent querysets.
        mqs.set_count(TeamVideo.objects.filter(team=self).count())

        return qs_list, mqs
コード例 #3
0
ファイル: rpc.py プロジェクト: appsembler/unisubs
    def load_popular_videos_volunteer(self, sort, request, user):
        sort_types = {
            'today': 'today_views',
            'week': 'week_views',
            'month': 'month_views',
            'year': 'year_views',
            'total': 'total_views'
        }

        sort_field = sort_types.get(sort, 'week_views')

        rel, rest = self._get_volunteer_sqs(request, user)

        rel = rel.order_by('-%s' % sort_field)[:5]
        rest = rest.order_by('-%s' % sort_field)[:5]

        count = rel.count() + rest.count()

        mqs = MultiQuerySet(rel, rest)
        mqs.set_count(count)

        context = {'video_list': mqs}

        content = render_to_string('videos/_watch_page.html', context,
                                   RequestContext(request))

        return {'content': content}
コード例 #4
0
    def load_latest_page_volunteer(self, page, request, user):
        rel, rest = self._get_volunteer_sqs(request, user)
        rel = rel.order_by('-created')
        rest = rest.order_by('-created')

        count = rel.count() + rest.count()

        mqs = MultiQuerySet(rel, rest)
        mqs.set_count(count)

        return render_page(page, mqs, request=request)
コード例 #5
0
ファイル: rpc.py プロジェクト: oaleeapp/EguoWorld
    def load_latest_page_volunteer(self, page, request, user):
        rel, rest = self._get_volunteer_sqs(request, user)
        rel = rel.order_by('-created')
        rest = rest.order_by('-created')

        count = rel.count() + rest.count()

        mqs = MultiQuerySet(rel, rest)
        mqs.set_count(count)

        return render_page(page, mqs, request=request)
コード例 #6
0
    def load_requested_page_volunteer(self, page, request, user):
        user_langs = get_user_languages_from_request(request)

        rel, rest = self._get_volunteer_sqs(request, user)

        rel = rel.filter(requests_exact__in=user_langs)
        rest = rest.filter(requests_exact__in=user_langs)

        count = rel.count() + rest.count()

        mqs = MultiQuerySet(rel, rest)
        mqs.set_count(count)

        return render_page(page, mqs, request=request)
コード例 #7
0
ファイル: rpc.py プロジェクト: oaleeapp/EguoWorld
    def load_requested_page_volunteer(self, page, request, user):
        user_langs = get_user_languages_from_request(request)

        rel, rest = self._get_volunteer_sqs(request, user)

        rel = rel.filter(requests_exact__in=user_langs)
        rest = rest.filter(requests_exact__in=user_langs)

        count = rel.count() + rest.count()

        mqs = MultiQuerySet(rel, rest)
        mqs.set_count(count)

        return render_page(page, mqs, request=request)
コード例 #8
0
    def load_featured_page_volunteer(self, page, request, user):
        rel, rest = self._get_volunteer_sqs(request, user)

        rel = rel.filter(featured__gt=datetime.datetime(datetime.MINYEAR, 1, 1)) \
            .order_by('-featured')

        rest = rest.filter(featured__gt=datetime.datetime(datetime.MINYEAR, 1, 1)) \
            .order_by('-featured')

        count = rel.count() + rest.count()

        mqs = MultiQuerySet(rel, rest)
        mqs.set_count(count)

        return render_page(page, mqs, request=request)
コード例 #9
0
ファイル: rpc.py プロジェクト: oaleeapp/EguoWorld
    def load_featured_page_volunteer(self, page, request, user):
        rel, rest = self._get_volunteer_sqs(request, user)

        rel = rel.filter(featured__gt=datetime.datetime(datetime.MINYEAR, 1, 1)) \
            .order_by('-featured')

        rest = rest.filter(featured__gt=datetime.datetime(datetime.MINYEAR, 1, 1)) \
            .order_by('-featured')

        count = rel.count() + rest.count()

        mqs = MultiQuerySet(rel, rest)
        mqs.set_count(count)

        return render_page(page, mqs, request=request)
コード例 #10
0
    def load_popular_page_volunteer(self, page, sort, request, user):

        sort_types = {
            'today': 'today_views',
            'week' : 'week_views', 
            'month': 'month_views', 
            'year' : 'year_views', 
            'total': 'total_views'
        }

        sort_field = sort_types.get(sort, 'week_views')

        rel, rest = self._get_volunteer_sqs(request, user)
        rel = rel.order_by('-%s' % sort_field)
        rest = rest.order_by('-%s' % sort_field)

        count = rel.count() + rest.count()

        mqs = MultiQuerySet(rel, rest)
        mqs.set_count(count)

        return render_page(page, mqs,  request=request)
コード例 #11
0
ファイル: rpc.py プロジェクト: oaleeapp/EguoWorld
    def load_popular_page_volunteer(self, page, sort, request, user):

        sort_types = {
            'today': 'today_views',
            'week': 'week_views',
            'month': 'month_views',
            'year': 'year_views',
            'total': 'total_views'
        }

        sort_field = sort_types.get(sort, 'week_views')

        rel, rest = self._get_volunteer_sqs(request, user)
        rel = rel.order_by('-%s' % sort_field)
        rest = rest.order_by('-%s' % sort_field)

        count = rel.count() + rest.count()

        mqs = MultiQuerySet(rel, rest)
        mqs.set_count(count)

        return render_page(page, mqs, request=request)
コード例 #12
0
ファイル: models.py プロジェクト: adncentral/unisubs
    def get_videos_for_languages_haystack(self, languages):
        from utils.multi_query_set import MultiQuerySet

        languages.extend([l[:l.find('-')] for l in 
                           languages if l.find('-') > -1])
        languages = list(set(languages))

        pairs_m, pairs_0, langs = [], [], []
        for l1 in languages:
            langs.append(SQ(content='S_{0}'.format(l1)))
            for l0 in languages:
                if l1 != l0:
                    pairs_m.append(self._lang_pair((l1, l0), "M"))
                    pairs_0.append(self._lang_pair((l1, l0), "0"))

        qs_list = []
        qs_list.append(self._filter(self._base_sqs(), pairs_m))
        qs_list.append(self._exclude(self._filter(self._base_sqs(), pairs_0), 
                                     pairs_m))
        qs_list.append(self._exclude(
                self._base_sqs().filter(
                    original_language__in=languages), 
                pairs_m + pairs_0).order_by('has_lingua_franca'))
        qs_list.append(self._exclude(
                self._filter(self._base_sqs(), langs),
                pairs_m + pairs_0).exclude(original_language__in=languages))
        qs_list.append(self._exclude(
                self._base_sqs(), 
                langs + pairs_m + pairs_0).exclude(
                original_language__in=languages))
        mqs = MultiQuerySet(*[qs for qs in qs_list if qs is not None])
        # this is way more efficient than making a count from all the 
        # constituent querysets.
        mqs.set_count(TeamVideo.objects.filter(team=self).count())

        return qs_list, mqs