def presskit_detail(request, band_slug, template_name='presskit/presskit_detail.html'): presskit = get_object_or_404(PressKit, band__slug=band_slug) # Five latest gigs latest_gigs = presskit.band.gigs.past_events()[:5] extra_context = {'band': presskit.band, 'presskit': presskit, 'latest_gigs': latest_gigs} if not request.user.is_anonymous(): # If we are not in the band, record us as a visitor if not request.user in presskit.band.members.all(): # Bands for band in request.user.bands.all(): record_visit(band, presskit.band) # Venues for venue in request.user.venues.all(): record_visit(venue, presskit.band) # Check if we can edit this presskit can_edit = request.user.has_perm('band.can_manage', presskit.band) # Completion badge presskit_completion_badge = Badge.objects.get(id='presskitcompletion') return render_to_response(template_name=template_name, dictionary={'can_edit': can_edit, 'presskit_completion_badge': presskit_completion_badge}, context_instance=RequestContext(request, extra_context), )
def public_view(request, venue_slug, template_name='venue/venue_detail.html'): """ Show public page of a Venue """ venue = get_object_or_404(Venue, slug=venue_slug) # Five latest gigs #latest_bands = Band.objects.filter(id__in=venue.gigs.past_events()[:5]).distinct() #past_events = venue.gigs.past_events()[:1] #future_events = venue.gigs.future_events()[0:5] # make a calendar #from datetime import date #from event.views.calendar import GigMonthlyHTMLCalendar #monthly_calendar = GigMonthlyHTMLCalendar(firstweekday=0, # aQueryset=venue.gigs.all(), # when=date.today()) # Check if the venue is managed is_managed = request.user.has_perm('venue.can_manage', venue) # Compute the response rate total_presskitviewrequests = PresskitViewRequest.objects.filter(venue__slug=venue_slug).count() unanswered_presskitviewrequests = PresskitViewRequest.objects.filter(venue__slug=venue_slug, state__in=('P', 'S')).count() if total_presskitviewrequests > 0: response_rate = 100 - int(unanswered_presskitviewrequests / float(total_presskitviewrequests) * 100) else: response_rate = 100 # if this is not our venue, then record us as a visitor # Venues if not is_managed and not request.user.is_anonymous(): for venue in request.user.venues.all(): record_visit(venue, venue) for band in request.user.bands.all(): record_visit(band, venue) extra_context = {#'latest_bands': latest_bands, #'past_events': past_events, #'future_events': future_events, #'monthly_calendar': monthly_calendar, 'response_rate': response_rate, 'is_managed': is_managed} return object_detail(request, queryset=Venue.objects.all(), slug=venue_slug, template_name=template_name, template_object_name='venue', extra_context=extra_context, )