def setUp(self): self.user = UserFactory() self.client = APIClient() self.client.force_authenticate(user=self.user) self.list_url = reverse('api:activity-list') # create a bunch of action objects of various types self.team = TeamFactory() self.team_member = TeamMemberFactory(user=self.user, team=self.team) self.video = VideoFactory() TeamVideoFactory(video=self.video, team=self.team) self.user2 = UserFactory() Action.create_video_handler(self.video, self.user) self.video.title = 'new-title' self.video.save() Action.change_title_handler(self.video, self.user) # creating comment will automatically create the action object Comment(content_object=self.video, user=self.user, content="Test Comment").save() v = pipeline.add_subtitles(self.video, 'en', None, author=self.user) Action.create_caption_handler(v, datetime.now()) Action.create_approved_video_handler(v, self.user2) Action.create_rejected_video_handler(v, self.user2) Action.create_new_member_handler(self.team_member) Action.create_member_left_handler(self.team, self.user) self.action_qs = Action.objects.for_user(self.user)
def finished_subtitles(self, request, draft_pk, packets, completed=None): draft = models.SubtitleDraft.objects.get(pk=draft_pk) if not request.user.is_authenticated(): return {'response': 'not_logged_in'} if not draft.language.can_writelock(request): return {"response": "unlockable"} if not draft.matches_request(request): return {"response": "does not match request"} self._save_packets(draft, packets) new_version, new_subs = self._create_version_from_draft( draft, request.user) if len(new_subs) == 0 and draft.language.latest_version() is None: should_save = False else: should_save = new_version.time_change > 0 or new_version.text_change > 0 if should_save: new_version.save() for subtitle in new_subs: subtitle.version = new_version subtitle.save() language = new_version.language language.update_complete_state() language.is_forked = new_version.is_forked language.release_writelock() if not draft.is_dependent() and completed is not None: language.is_complete = completed language.save() new_version.update_percent_done() if language.is_original: language.video.update_complete_state() language.video.save() from videos.models import Action Action.create_caption_handler(new_version) return { "response": "ok", "last_saved_packet": draft.last_saved_packet, "drop_down_contents": self._drop_down_contents(draft.video.video_id) }
def finished_subtitles(self, request, draft_pk, packets, completed=None): draft = models.SubtitleDraft.objects.get(pk=draft_pk) if not request.user.is_authenticated(): return { 'response': 'not_logged_in' } if not draft.language.can_writelock(request): return { "response" : "unlockable" } if not draft.matches_request(request): return { "response" : "does not match request" } self._save_packets(draft, packets) new_version, new_subs = self._create_version_from_draft(draft, request.user) if len(new_subs) == 0 and draft.language.latest_version() is None: should_save = False else: should_save = new_version.time_change > 0 or new_version.text_change > 0 if should_save: new_version.save() for subtitle in new_subs: subtitle.version = new_version subtitle.save() language = new_version.language language.update_complete_state() language.is_forked = new_version.is_forked language.release_writelock() if not draft.is_dependent() and completed is not None: language.is_complete = completed language.save() new_version.update_percent_done() if language.is_original: language.video.update_complete_state() language.video.save() from videos.models import Action Action.create_caption_handler(new_version) return { "response" : "ok", "last_saved_packet": draft.last_saved_packet, "drop_down_contents" : self._drop_down_contents(draft.video.video_id) }
def finished_subtitles(self, request, video_id, packets, language_code=None): if not request.user.is_authenticated(): return { 'response': 'not_logged_in' } from videos.models import Action video = models.Video.objects.get(video_id=video_id) language = video.subtitle_language(language_code) if not language.can_writelock(request): return { "response" : "unlockable" } last_version = language.latest_version() self._save_packets(last_version, packets) last_version.finished = True last_version.user = request.user last_version.save() language = models.SubtitleLanguage.objects.get(pk=language.pk) language.release_writelock() language.save() Action.create_caption_handler(last_version) return { "response" : "ok", "last_saved_packet": last_version.last_saved_packet, "drop_down_contents" : self._drop_down_contents(request.user, video) }