예제 #1
0
	def _getVideosToDownload(self):
		ret=[]
		object_type=ContentType.objects.get_for_model(Committee)
		videos=Video.objects.filter(content_type__pk=object_type.id,group='mms').order_by('id')
		for video in videos:
			qs=get_videos_queryset(video,group='youtube_upload',ignoreHide=True)
			if qs.count()==0:
				ret.append(video)
		return ret
예제 #2
0
def update_members_about_video():
    for member in Member.objects.all():
        if get_videos_queryset(member,group='about').count()==0:
            names=_get_member_names(member)
            got_video=False
            for name in names:
                videos=get_youtube_videos(q=u"כרטיס ביקור ערוץ הכנסת "+name)
                for video in videos:
                    if _update_member_about_video(member,video,names):
                        got_video=True
                        break
                if got_video:
                    break
예제 #3
0
def _update_member_related_video(member,video):
    cnt=get_videos_queryset(member).filter(source_id=video['id'],source_type='youtube').count()
    if cnt==0:
        v = Video(
            embed_link=video['embed_url_autoplay'],
            small_image_link=video['thumbnail90x120'],
            title=video['title'],
            description=video['description'],
            link=video['link'],
            source_type='youtube', 
            source_id=video['id'],
            published=video['published'],
            group='related', 
            content_object=member
        )
        v.save()
        return True
    else:
        return False
예제 #4
0
 def _getMemberExistingVideosCount(self, ignoreHide, member, source_id,
                                   source_type):
     qs = get_videos_queryset(member, ignoreHide=ignoreHide)
     qs = qs.filter(source_id=source_id, source_type=source_type)
     return qs.count()
 def _getVideos(self, getVideosQuerysetParams, filterParams):
     return get_videos_queryset(**getVideosQuerysetParams).filter(
         **filterParams)
 def _hideMemberAboutVideos(self, member):
     videos = get_videos_queryset(member, group='about')
     for video in videos:
         video.hide = True
         video.save()
예제 #7
0
 def _hideMemberAboutVideos(self,member):
     videos=get_videos_queryset(member,group='about')
     for video in videos:
         video.hide=True
         video.save()
예제 #8
0
 def _getVideos(self, getVideosQuerysetParams, filterParams):
     return get_videos_queryset(**getVideosQuerysetParams).filter(**filterParams)
 def _getMemberExistingVideosCount(self,ignoreHide,member,source_id,source_type):
     qs=get_videos_queryset(member,ignoreHide=ignoreHide)
     qs=qs.filter(source_id=source_id,source_type=source_type)
     return qs.count()
예제 #10
0
 def _isVideoExists(self, video):
     return get_videos_queryset(
         video['content_object'],
         ignoreHide=True).filter(source_id=video['source_id']).count() > 0
예제 #11
0
 def _isVideoExists(self,video):
     return get_videos_queryset(video['content_object'],ignoreHide=True).filter(source_id=video['source_id']).count()>0
 def _get_committee_num_mms_videos(self,comm,group,ignoreHide,embed_link):
     return get_videos_queryset(comm,group=group,ignoreHide=ignoreHide).filter(embed_link=embed_link).count()
 def _isVideoAlreadyUploaded(self,video):
     qs=get_videos_queryset(video,group='youtube_upload',ignoreHide=True)
     return qs.count()>0
예제 #14
0
    def get_context_data (self, **kwargs):
        context = super(MemberDetailView, self).get_context_data(**kwargs)
        member = context['object']
        if self.request.user.is_authenticated():
            p = self.request.user.get_profile()
            watched = member in p.members
            cached_context = None
        else:
            watched = False
            cached_context = cache.get('mk_%d' % member.id, None)

        if cached_context is None:
            verbs = None
            if 'verbs' in self.request.GET:
                verbs_form = VerbsForm(self.request.GET)
                if verbs_form.is_valid():
                    verbs = verbs_form.cleaned_data['verbs']
            if verbs==None:
                verbs = ('proposed', 'posted')
                verbs_form = VerbsForm({'verbs': verbs})

            presence = {}
            self.calc_percentile(member, presence,
                                 'average_weekly_presence_hours',
                                 'average_weekly_presence_hours',
                                 'average_weekly_presence_hours_percentile' )
            self.calc_percentile(member, presence,
                                 'average_monthly_committee_presence',
                                 'average_monthly_committee_presence',
                                 'average_monthly_committee_presence_percentile' )

            bills_statistics = {}
            self.calc_bill_stats(member,bills_statistics,'proposed')
            self.calc_bill_stats(member,bills_statistics,'pre')
            self.calc_bill_stats(member,bills_statistics,'first')
            self.calc_bill_stats(member,bills_statistics,'approved')

            bills_tags = Tag.objects.usage_for_queryset(member.bills.all(),counts=True)
            #bills_tags.sort(key=lambda x:x.count,reverse=True)
            bills_tags = calculate_cloud(bills_tags)

            if self.request.user.is_authenticated():
                agendas = Agenda.objects.get_selected_for_instance(member, user=self.request.user, top=3, bottom=3)
            else:
                agendas = Agenda.objects.get_selected_for_instance(member, user=None, top=3, bottom=3)
            agendas = agendas['top'] + agendas['bottom']
            for agenda in agendas:
                agenda.watched=False
            if self.request.user.is_authenticated():
                watched_agendas = self.request.user.get_profile().agendas
                for watched_agenda in watched_agendas:
                    if watched_agenda in agendas:
                        agendas[agendas.index(watched_agenda)].watched = True
                    else:
                        watched_agenda.score = watched_agenda.member_score(member)
                        watched_agenda.watched = True
                        agendas.append(watched_agenda)
            agendas.sort(key=attrgetter('score'), reverse=True)

            factional_discipline = VoteAction.objects.filter(member = member, against_party=True)

            votes_against_own_bills = VoteAction.objects.filter(member=member,
                                                                against_own_bill=True)

            general_discipline_params = { 'member' : member }
            is_coalition = member.current_party.is_coalition
            if is_coalition:
                general_discipline_params['against_coalition'] = True
            else:
                general_discipline_params['against_opposition'] = True
            general_discipline = VoteAction.objects.filter(**general_discipline_params)

            about_videos=get_videos_queryset(member,group='about')[:1]
            if len(about_videos):
                about_video=about_videos[0]
                about_video_embed_link=about_video.embed_link
                about_video_image_link=about_video.image_link
            else:
                about_video_embed_link=''
                about_video_image_link=''

            related_videos=get_videos_queryset(member,group='related')
            related_videos=related_videos.filter(
                Q(published__gt=date.today()-timedelta(days=30))
                | Q(sticky=True)
            ).order_by('sticky').order_by('-published')[:5]

            actions = actor_stream(member).filter(verb__in=verbs)
            for a in actions:
                a.actor = member
            cached_context = {'watched_member': watched,
                'actions':actions,
                'verbs_form': verbs_form,
                'bills_statistics':bills_statistics,
                'bills_tags':bills_tags,
                'agendas':agendas,
                'presence':presence,
                'factional_discipline':factional_discipline,
                'votes_against_own_bills':votes_against_own_bills,
                'general_discipline':general_discipline,
                'about_video_embed_link':about_video_embed_link,
                'about_video_image_link':about_video_image_link,
                'related_videos':related_videos,
                'num_related_videos':related_videos.count()
               }
            if not self.request.user.is_authenticated():
                cache.set('mk_%d' % member.id, cached_context, settings.LONG_CACHE_TIME)
        context.update(cached_context)
        return context
예제 #15
0
    def get_context_data (self, **kwargs):
        context = super(MemberDetailView, self).get_context_data(**kwargs)
        member = context['object']
        verbs = None
        if 'verbs' in self.request.GET:
            verbs_form = VerbsForm(self.request.GET)
            if verbs_form.is_valid():
                verbs = verbs_form.cleaned_data['verbs']
        if verbs==None:
            verbs = ('proposed', 'posted')
            verbs_form = VerbsForm({'verbs': verbs})
        if self.request.user.is_authenticated():
            p = self.request.user.get_profile()
            watched = member in p.members
            cached_context = None
        else:
            watched = False
            cached_context = cache.get('mk_%d_%s' % (member.id,
                                                     '_'.join(verbs)))

        if cached_context is None:
            presence = {}
            self.calc_percentile(member, presence,
                                 'average_weekly_presence_hours',
                                 'average_weekly_presence_hours',
                                 'average_weekly_presence_hours_percentile' )
            self.calc_percentile(member, presence,
                                 'average_monthly_committee_presence',
                                 'average_monthly_committee_presence',
                                 'average_monthly_committee_presence_percentile' )

            bills_statistics = {}
            self.calc_bill_stats(member,bills_statistics,'proposed')
            self.calc_bill_stats(member,bills_statistics,'pre')
            self.calc_bill_stats(member,bills_statistics,'first')
            self.calc_bill_stats(member,bills_statistics,'approved')

            bills_tags = Tag.objects.usage_for_queryset(member.bills.all(),counts=True)
            #bills_tags.sort(key=lambda x:x.count,reverse=True)
            bills_tags = calculate_cloud(bills_tags)

            if self.request.user.is_authenticated():
                agendas = Agenda.objects.get_selected_for_instance(member, user=self.request.user, top=3, bottom=3)
            else:
                agendas = Agenda.objects.get_selected_for_instance(member, user=None, top=3, bottom=3)
            agendas = agendas['top'] + agendas['bottom']
            for agenda in agendas:
                agenda.watched=False
            if self.request.user.is_authenticated():
                watched_agendas = self.request.user.get_profile().agendas
                for watched_agenda in watched_agendas:
                    if watched_agenda in agendas:
                        agendas[agendas.index(watched_agenda)].watched = True
                    else:
                        watched_agenda.score = watched_agenda.member_score(member)
                        watched_agenda.watched = True
                        agendas.append(watched_agenda)
            agendas.sort(key=attrgetter('score'), reverse=True)

            factional_discipline = VoteAction.objects.select_related(
                'vote').filter(member = member, against_party=True)

            votes_against_own_bills = VoteAction.objects.select_related(
                'vote').filter(member=member, against_own_bill=True)

            general_discipline_params = { 'member' : member }
            is_coalition = member.current_party.is_coalition
            if is_coalition:
                general_discipline_params['against_coalition'] = True
            else:
                general_discipline_params['against_opposition'] = True
            general_discipline = VoteAction.objects.filter(
                **general_discipline_params).select_related('vote')

            about_videos=get_videos_queryset(member,group='about')[:1]
            if len(about_videos):
                about_video=about_videos[0]
                about_video_embed_link=about_video.embed_link
                about_video_image_link=about_video.image_link
            else:
                about_video_embed_link=''
                about_video_image_link=''

            related_videos=get_videos_queryset(member,group='related')
            related_videos=related_videos.filter(
                Q(published__gt=date.today()-timedelta(days=30))
                | Q(sticky=True)
            ).order_by('sticky').order_by('-published')[:5]

            actions = actor_stream(member).filter(
                verb__in=verbs)
            for a in actions:
                a.actor = member
            cached_context = {'watched_member': watched,
                'actions':actions,
                'verbs_form': verbs_form,
                'bills_statistics':bills_statistics,
                'bills_tags':bills_tags,
                'agendas':agendas,
                'presence':presence,
                'factional_discipline':factional_discipline,
                'votes_against_own_bills':votes_against_own_bills,
                'general_discipline':general_discipline,
                'about_video_embed_link':about_video_embed_link,
                'about_video_image_link':about_video_image_link,
                'related_videos':related_videos,
                'num_related_videos':related_videos.count()
               }
            if not self.request.user.is_authenticated():
                cache.set('mk_%d_%s' % (member.id, '_'.join(verbs)),
                                        cached_context,
                                        settings.LONG_CACHE_TIME)
        context.update(cached_context)
        return context
예제 #16
0
 def _get_committee_num_mms_videos(self, comm, group, ignoreHide,
                                   embed_link):
     return get_videos_queryset(
         comm, group=group,
         ignoreHide=ignoreHide).filter(embed_link=embed_link).count()
예제 #17
0
 def _isVideoAlreadyUploaded(self, video):
     qs = get_videos_queryset(video,
                              group='youtube_upload',
                              ignoreHide=True)
     return qs.count() > 0