コード例 #1
0
ファイル: views.py プロジェクト: SpreadBand/SpreadBand
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)
                              )
コード例 #2
0
ファイル: __init__.py プロジェクト: SpreadBand/SpreadBand
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
                         )