Exemplo n.º 1
0
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')
    })
Exemplo n.º 2
0
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')
    })
Exemplo n.º 3
0
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])
    })
Exemplo n.º 4
0
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])
    })