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