def create_audio_source(request): """ View for dynamic creation of an audio source """ if request.method == 'POST': audio_source = AudioSource(title=request.POST['title'], length=0) audio_source.save() add_tags_to_model(request.POST['tags'], audio_source) playlist_tuples = [(int(key.split('_')[-1]), int(val)) for key, val in request.POST.items() if key.startswith('source_element_')] add_audiofiles_to_audiosource(playlist_tuples, audio_source) return JSONResponse({ 'status':'success', 'action':'creation', 'audiosource':audio_source.to_dict() }) return JSONResponse({ 'action': 'creation', 'tag_list': tag_list(), 'title': 'Creation d''une nouvelle playlist', 'form_url': reverse('create-audio-source') })
def create_audio_source(request): """ View for dynamic creation of an audio source """ if request.method == 'POST': audio_source = AudioSource(title=request.POST['title'], length=0) audio_source.save() add_tags_to_model(request.POST['tags'], audio_source) playlist_tuples = [(int(key.split('_')[-1]), int(val)) for key, val in request.POST.items() if key.startswith('source_element_')] add_audiofiles_to_audiosource(playlist_tuples, audio_source) return JSONResponse({ 'status': 'success', 'action': 'creation', 'audiosource': audio_source.to_dict() }) return JSONResponse({ 'action': 'creation', 'tag_list': tag_list(), 'title': 'Creation d' 'une nouvelle playlist', 'form_url': reverse('create-audio-source') })
def edit_audio_source(request, audiosource_id): """ JSON View for edition of an audio source (playlist) This view deletes every source element of the audio source every time it is edited """ # TODO: Send audio_source = get_object_or_404(AudioSource, id=audiosource_id) if request.method == 'POST': audio_source.title = request.POST['title'] audio_source.description = request.POST['description'] share = request.POST['share'] audio_source.share = True if share == "yes" else False audio_source.sourceelement_set.all().delete() audio_source.length = 0 add_tags_to_model(request.POST['tags'], audio_source) # Save to be able to add audiofiles to source audio_source.save() playlist_tuples = [(int(key.split('_')[-1]), int(val)) for key, val in request.POST.items() if key.startswith('source_element_')] to_delete_tags = [ val for key, val in request.POST.items() if key.startswith('to_delete_tag') ] remove_tags_from_model(audio_source, to_delete_tags) add_audiofiles_to_audiosource(playlist_tuples, audio_source) return JSONResponse({ 'status': 'success', 'action': 'edition', 'audiosource': audio_source.to_dict() }) return JSONResponse({ 'action': 'edition', 'tag_list': tag_list(), 'title': "Edition de la playlist %s" % audio_source.title, 'audiosource': audio_source.to_dict(with_audiofiles=True, with_tags=True), 'form_url': reverse('edit-audio-source', args=[audiosource_id]) })
def edit_audio_source(request, audiosource_id): """ JSON View for edition of an audio source (playlist) This view deletes every source element of the audio source every time it is edited """ # TODO: Send audio_source = get_object_or_404(AudioSource, id=audiosource_id) if request.method == 'POST': audio_source.title = request.POST['title'] audio_source.description = request.POST['description'] share = request.POST['share'] audio_source.share = True if share == "yes" else False audio_source.sourceelement_set.all().delete() audio_source.length = 0 add_tags_to_model(request.POST['tags'], audio_source) # Save to be able to add audiofiles to source audio_source.save() playlist_tuples = [(int(key.split('_')[-1]), int(val)) for key, val in request.POST.items() if key.startswith('source_element_')] to_delete_tags = [val for key, val in request.POST.items() if key.startswith('to_delete_tag')] remove_tags_from_model(audio_source, to_delete_tags) add_audiofiles_to_audiosource(playlist_tuples, audio_source) return JSONResponse({ 'status':'success', 'action':'edition', 'audiosource':audio_source.to_dict() }) return JSONResponse({ 'action':'edition', 'tag_list':tag_list(), 'title': "Edition de la playlist %s" % audio_source.title, 'audiosource':audio_source.to_dict(with_audiofiles=True, with_tags=True), 'form_url': reverse('edit-audio-source', args=[audiosource_id]) })