def _apply_subtitle_changes(self, sub_collection, subtitle_set, packet): deleted = packet['deleted'] updated = packet['updated'] inserted = packet['inserted'] if len(deleted) == 0 and len(inserted) == 0 and len(updated) == 0: return for d in deleted: subtitle_set.remove(subtitle_set.get(subtitle_id=d['subtitle_id'])) for u in updated: subtitle = subtitle_set.get(subtitle_id=u['subtitle_id']) subtitle.update_from(u, sub_collection.is_dependent()) subtitle.save() for i in inserted: if not subtitle_set.filter(subtitle_id=i['subtitle_id']).exists(): if sub_collection.is_dependent(): subtitle = models.Subtitle(subtitle_id=i['subtitle_id'], subtitle_text=i['text']) else: subtitle = models.Subtitle(subtitle_id=i['subtitle_id'], subtitle_text=i['text'], start_time=i['start_time'], end_time=i['end_time'], subtitle_order=i['sub_order']) subtitle_set.add(subtitle)
def save_emailed_translations(request): if request.method == "GET": return render_to_response('widget/save_emailed_translations.html', context_instance=RequestContext(request)) else: draft = models.SubtitleDraft.objects.get(pk=request.POST['draft_pk']) user = CustomUser.objects.get(pk=request.POST['user_pk']) subs = json.loads(request.POST['sub_text']) draft.subtitle_set.all().delete() for sub in subs: subtitle = models.Subtitle(draft=draft, subtitle_id=sub['subtitle_id'], subtitle_text=sub['text']) subtitle.save() draft = models.SubtitleDraft.objects.get(pk=draft.pk) rpc_views.save_finished(draft, user) return redirect(draft.video.video_link())