Exemplo n.º 1
0
def mixtape_create(request):
    userto = request.POST.get('tracklist-userto')
    if not userto:
        profile_me = request.user.get_profile()
        profile_queryset = request.user.get_profile().get_following()
        tracklist_queryset = Tracklist.objects.filter(owner__in=profile_queryset)|Tracklist.objects.filter(userto__in=profile_queryset)|profile_me.tracklists_created.all()|profile_me.tracklists_contributed.all()
        tracklist_list = tracklist_queryset.distinct().order_by('-date_latest_edit')[:10]

        context = {
            'tracklist_list':tracklist_list,
            'error_message_userto': "You must select at least one contributor. Click the 'New Mixtape' button to start over.",
        }
        context.update(get_generic_context(request))
        context.update(get_rankings(request))

        return render_to_response('hip_engine/feed.html', context, context_instance=RequestContext(request))

    tracklist_form = TracklistForm(request.POST, prefix='tracklist', username=request.user.username)
    if tracklist_form.is_valid():
        tracklist = tracklist_form.save()
        for i_str in ["_1","_2","_3"]:
                url = request.POST.get('url'+i_str)
                artist = request.POST.get('artist'+i_str)
                name = request.POST.get('name'+i_str)
                if url:
                    validate = URLValidator()
                    try:
                        validate(url)
                        track = Track(url=url)
                        if artist:
                            track.artist = artist
                        if name:
                            track.name = name
                        track.save()
                        tracklist.tracks_initial.add(track)
                    except ValidationError, e:
                        tracklist_queryset = Tracklist.objects.all()
                        tracklist_list = tracklist_queryset.distinct().order_by('-date_latest_edit')[:10]
                        context = {
                            'tracklist_form':tracklist_form,
                            'tracklist_list':tracklist_list,
                            'error_message_url': "Some track urls are invalid, please check them. Click the 'New Mixtape' button to start over.",
                        }
                        context.update(get_nav_context())
                        context.update(get_rankings(request))

                        return render_to_response('hip_engine/feed.html', context, context_instance=RequestContext(request))
    
        title = request.POST.get('title')
        if title:
            tracklist.title = title

        event = Event(main_profile = request.user.get_profile(), event_type = "creation")
        event.save()
        tracklist.latest_event = event
        tracklist.date_latest_edit = timezone.now()

        string_tags = request.POST.get('tags')
        if string_tags:
            tags = parseTags(string_tags)
            for tag_name in tags:
                if Tag.objects.filter(name=tag_name):
                    tag = get_object_or_404(Tag, name=tag_name)
                    tracklist.tags.add(tag)
                else:
                    tag = Tag(name=tag_name)
                    tag.save()
                    tracklist.tags.add(tag)

        tracklist.save()
Exemplo n.º 2
0
        validate(url)
    except ValidationError, e:
        tracklist_queryset = Tracklist.objects.all()
        tracklist_list = tracklist_queryset.distinct().order_by('-date_latest_edit')[:10]
        context = {
            'tracklist_list': tracklist_list,
            'error_message_url': "Your track url is not valid. Please stop trying to break the internet.",
        }
        context.update(get_nav_context())
        context.update(get_rankings(request))

        return render_to_response('hip_engine/feed.html', context, context_instance=RequestContext(request))

    track = Track(url=url)
    if artist:
        track.artist = artist
    if name:
        track.name = name
    track.save()

    if request.user.get_profile() == tracklist.owner:
        tracklist.tracks_initial.add(track)

        event = Event(main_profile=tracklist.owner, event_type="add_track_owner")
        event.save()
        tracklist.latest_event = event
        tracklist.date_latest_edit = timezone.now()
        tracklist.save()

    else:
        if tracklist.bundlebacks.filter(owner=request.user.get_profile()):