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))
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()