def dashboard(request, venue_slug): """ Dashboard for a venue """ venue = get_object_or_404(Venue, slug=venue_slug) # Check perms if not request.user.has_perm('venue.can_manage', venue): return HttpResponseForbidden('You are not allowed to manage this venue') # Presskit tracker # Show either 30 latest days or the latest 15 presskits ten_days_ago = datetime.now() - timedelta(days=30) received_presskits = PresskitViewRequest.objects.filter(venue=venue, modified_on__gte=ten_days_ago).order_by('modified_on', '-sent_on', 'state')[:15] # Get latest visits latest_visits = get_latest_visits_for(venue) return render_to_response(template_name='venue/dashboard.html', dictionary={'venue': venue, 'received_presskits': received_presskits, 'latest_visits': latest_visits}, context_instance=RequestContext(request) )
def dashboard(request, band_slug): """ Show details about a band """ band = get_object_or_404(Band, slug=band_slug) # Permissions if not request.user.has_perm('band.can_manage', band): return HttpResponseForbidden('You are not allowed to view this dashboard band') #past_events = band.gigs.past_events()[:1] #future_events = band.gigs.future_events()[0:5] #today_events = band.gigs.future_events().filter(event_date=date.today()) # make a calendar #monthly_calendar = GigMonthlyHTMLCalendar(firstweekday=0, # aQueryset=band.gigs.all(), # when=date.today()) # gigbargains #gigbargain_invitations = band.gigbargains.invitationsFor(band) #gigbargain_drafts = band.gigbargains.draftsFor(band) # Get 5 latest gigbargain activities # latest_activity = Action.objects.stream_for_model(GigBargain).filter(target_object_id__in=band.gigbargains.inprogress_gigbargains())[:3] # Get 10 latest visits latest_visits = get_latest_visits_for(band) # Presskit completion presskit_completion_badge = Badge.objects.get(id='presskitcompletion') presskit_completion = dict() presskit_completion['perc'] = int(presskit_completion_badge.meta_badge.get_progress_percentage(band)) condition_callbacks = [getattr(presskit_completion_badge.meta_badge, c) for c in dir(presskit_completion_badge.meta_badge) if c.startswith('check')] for fn in condition_callbacks: presskit_completion[fn.__name__] = fn(band) # Presskit tracker show_pktracker_history = request.GET.get('pktracker_history', False) # Switch if we need to show *all* gig requests or limited history if not show_pktracker_history: # Show either 30 latest days or the latest 15 presskits ten_days_ago = datetime.now() - timedelta(days=30) sent_presskits = PresskitViewRequest.objects.filter(presskit=band.presskit, modified_on__gte=ten_days_ago).order_by('modified_on', '-sent_on', 'state')[:15] else: # Show 50 latest presskits sent_presskits = PresskitViewRequest.objects.filter(presskit=band.presskit).order_by('modified_on', '-sent_on', 'state')[:50] extra_context = {#'past_events': past_events, #'future_events': future_events, #'today_events': today_events, #'monthly_calendar': monthly_calendar, # 'latest_activity': latest_activity, #'gigbargain_invitations': gigbargain_invitations, #'gigbargain_drafts': gigbargain_drafts, 'latest_visits': latest_visits, 'presskit_completion': presskit_completion, 'presskit_completion_badge': presskit_completion_badge, 'sent_presskits': sent_presskits} return object_detail(request, queryset=Band.objects.all(), slug=band_slug, template_object_name='band', template_name='bands/band_detail.html', extra_context=extra_context )