Esempio n. 1
0
def mixtape_edit(request, tracklist_id):

    context = get_rankings(request)
    context.update(get_nav_context())

    tracklist = get_object_or_404(Tracklist, pk=tracklist_id)
    if tracklist.owner.user == request.user:
        if request.POST:
            title = request.POST.get('title')
            if title:
                tracklist.title = title

            string_tags = request.POST.get('tags')
            tracklist.tags.clear()
            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)

            for i, track in enumerate(tracklist.tracks_initial.all()):
                url = request.POST.get('url_'+str(i+1))
                validate = URLValidator()
                try:
                    validate(url)
                    track.url = url
                    track.artist = request.POST.get('artist_'+str(i+1))
                    track.name = request.POST.get('name_'+str(i+1))
                    track.save()
                except ValidationError, e:
                    tracklist_queryset = Tracklist.objects.all()
                    tracklist_list = tracklist_queryset.distinct().order_by('-date_latest_edit')[:10]
                    context.update({
                        'error_message_url': "Your track url is not valid. Please try again!",
                        'tracklist':tracklist,
                        })
                    return render_to_response('hip_engine/mixtape_edit.html', context, context_instance=RequestContext(request))

            tracklist.save()

            return HttpResponseRedirect(reverse('hip_engine.views.mixtape_display', args=(tracklist_id,)))
        
        context.update({"tracklist":tracklist,})
        return render_to_response('hip_engine/mixtape_edit.html', context, context_instance=RequestContext(request))
Esempio n. 2
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()
Esempio n. 3
0
def populate_db(request):
    if request.user.username == "hipmaster":
        from hip_engine.hipme_db_setup_clean import INSTANCES
        for instance in INSTANCES:
            if instance["model"] == "UserProfile":

                username = instance["username"]
                email = instance["email"]
                password = instance["password"]

                user = User.objects.create_user(username, email, password)

            if instance["model"] == "TrackList":

                owner = get_object_or_404(UserProfile,user__username=instance["owner"])
                title = instance["title"]
                # description = instance["description"]
                is_finished = instance["is_finished"]

                event = Event(main_profile = owner, event_type = "creation")
                event.save()

                tracklist = Tracklist(
                    owner = owner, 
                    title = title, 
                    # description = description, 
                    is_finished=is_finished,
                    latest_event=event,
                )
                tracklist.save()

                bundlebacks = instance["bundlebacks"]

                if instance["tags"]:
                    for tag_name in instance["tags"]:
                        tag_name = tag_name.title()
                        tag_name = " ".join(tag_name.split())
                        tag = Tag(name=tag_name)
                        tag.save()
                        tracklist.tags.add(tag)

                if instance["tracks"]:
                    for track_dic in instance["tracks"]:
                        url = track_dic["url"]
                        artist = track_dic["artist"]
                        name = track_dic["name"]
                        track = Track(url=url, artist=artist, name=name)
                        track.save()
                        tracklist.tracks_initial.add(track)

                if instance["bundlebacks"]:
                    for bundleback_dic in instance["bundlebacks"]:
                        owner = get_object_or_404(UserProfile,user__username=bundleback_dic["owner"])
                        bundleback = Bundle(owner=owner)
                        bundleback.save()                
                        for track_dic in bundleback_dic["tracks"]:
                            url = track_dic["url"]
                            artist = track_dic["artist"]
                            name = track_dic["name"]
                            track = Track(url=url, artist=artist, name=name)
                            track.save()
                            bundleback.tracks.add(track)
                        tracklist.userto.add(owner)
                        tracklist.bundlebacks.add(bundleback)

        return render_to_response('hip_engine/populate_success.html', {}, context_instance=RequestContext(request))
    else:
        return feed(request)