Esempio n. 1
0
def _set_version_moderation_status(version, team, user, status, updates_meta=True):
    if not user_can_moderate(version.language.video, user):
        raise SuspiciousOperation("User cannot approve this version")    
    version.moderation_status = status
    version.save()
    if updates_meta:
        video_cache.invalidate_cache(version.video.video_id)
        _update_search_index(version.video)
    return version    
Esempio n. 2
0
def add_moderation( video, team, user):
    """
    Adds moderation and approves all 
    """
    if video.moderated_by :
        raise AlreadyModeratedException("Video is already moderated")
    if not team.can_add_moderation(user) :       
        raise SuspiciousOperation("User cannot set this video as moderated")
    video.moderated_by = team
    video.save()
    SubtitleVersion.objects.filter(language__video__id = video.pk, moderation_status=UNMODERATED).update(moderation_status=APPROVED)
    video_cache.invalidate_cache(video.video_id)
    _update_search_index(video)
    return True
Esempio n. 3
0
def remove_moderation( video,  team, user):
    """
    Removes the moderation lock for that video, sets all the sub versions to
    approved , invalidates the cache and updates the search index.
    """
    if not video.moderated_by:
        return None
    if not team.can_remove_moderation( user) :       
        raise SuspiciousOperation("User cannot unset this video as moderated")
    for lang in video.subtitlelanguage_set.all():
        latest = lang.latest_version(public_only=False)
        if latest and latest.moderation_status == REJECTED:
            # rollback to the last moderated status
            latest_approved = lang.latest_version(public_only=Tue)
            v = latest_approved.rollback(user)
            v.save()
        
    num = SubtitleVersion.objects.filter(language__video=video).update(moderation_status=UNMODERATED)
    video.moderated_by = None;
    video.save()
    video_cache.invalidate_cache(video.video_id)
    _update_search_index(video)
    return num