Example #1
0
File: views.py Project: garyp/djwed
def make_labels(request, filter=None):
    if not request.user.is_staff: return HttpResponseRedirect('/admin/')
    response = HttpResponse(mimetype='application/pdf')
    response['Content-Disposition'] = 'attachment; filename=mailing-labels.pdf'
    labels = LabelMaker(LabelSpecBasic)
    inv_set = guest_filter.all_invitees()
    if filter == 'std':
        inv_set = guest_filter.savedate_invitees()
    for inv in inv_set:
        if inv.full_address:
            text = inv.full_name_couple()+u'\n'+inv.full_address
            labels.add_label(text)
    response.write(labels.finish())
    return response
Example #2
0
File: views.py Project: garyp/djwed
def tools_report(request, filter=None, template=None):
    if request.user.is_staff or request.user.username in users_with_rsvp_view_perms:
        pass
    else:
        return HttpResponseRedirect('/admin/login/?next=/tools/')        
    inv = Invitee.objects.all().order_by('last_updated','last_visited').reverse()
    if filter=='std':
        inv = guest_filter.savedate_invitees()
    return render_to_response(template, {
        'invitees': inv,
        'filter': filter,
        'venues': Venue.objects.all(),
        'guests': Guest.objects.all(),
        'rsvps': RSVP.objects.all(),
        'user': request.user },
        context_instance=RequestContext(request))
Example #3
0
File: views.py Project: garyp/djwed
def make_svg(request, filter=None, n_up=4, template=None, venue_site=None, format="ps", orient="portrait"):
    if not request.user.is_staff: return HttpResponseRedirect('/admin/')
    if not filter: filter="all"

    if format == "pdf":
        response = HttpResponse(mimetype='application/pdf')
        response['Content-Disposition'] = 'attachment; filename=results-%s.pdf'%(filter,)
        svg2pdf = SVG2PDF(pdf_mode=True, orient=orient)
    else:
        response = HttpResponse(mimetype='application/postscript')
        response['Content-Disposition'] = 'attachment; filename=results-%s.ps'%(filter,)
        svg2pdf = SVG2PDF(orient=orient)

    inv_set = guest_filter.all_invitees()
    if filter == 'std':
        inv_set = guest_filter.savedate_invitees()
    elif filter == 'non-ru':
        inv_set = guest_filter.non_ru_invitees()
    elif filter == 'ru':
        inv_set = guest_filter.ru_invitees()
    elif filter == 'test':
        inv_set = guest_filter.test_invitees()
    elif filter == 'rsvp_yes':
        rsvps = RSVP.objects.filter(venue=venue_site, status__in=RSVPOption.objects.yes()).order_by('guest__last_name','guest__first_name')
        inv_set = []
        for r in rsvps:
            inv_set.append(r)

    for spos in range(0,len(inv_set),n_up):
    #for spos in range(0,10,n_up):
        inv_group = [None,]
        for invitee in inv_set[spos:spos+4]:
            inv_group.append(invitee)        
        svg2pdf.add_svg(loader.render_to_string(template, { 'inv': inv_group, }))
    response.write(svg2pdf.finish())
    return response
Example #4
0
File: views.py Project: garyp/djwed
def tools_export(request, filter="all-invitees", rowset="invitee", columns=None):
    if not request.user.is_staff: return HttpResponseRedirect('/admin/')        

    venue_ma = Venue.objects.get(site="MA")
    venue_ca = Venue.objects.get(site="CA")
    ss = SpreadSheet(filter+"-"+rowset)
    if rowset == "invitees":
        if filter=='std':
            inv = guest_filter.savedate_invitees()
        else:
            inv = guest_filter.all_invitees()
        ss.add_column("invite_code", 40)
        ss.add_column("full_name", 120)
        ss.add_column("country", 15)       
        ss.add_column("state", 15)       
        ss.add_column("association", 40)       
        ss.add_column("side", 15)       
        ss.add_column("full_address", 120)       
        ss.add_column("ma_ev", 15)       
        ss.add_column("ca_ev", 15)       
        for x in inv:
            ma_ev = 0
            ca_ev = 0
            for g in x.guest_set.all():
                ma_ev += g.venue_likelihood(venue_ma)
                ca_ev += g.venue_likelihood(venue_ca)
            row = [x.invite_code,
                   x.full_name(),
                   x.country,
                   x.state,
                   x.association,
                   x.side,
                   x.full_address,
                   ma_ev,
                   ca_ev]
            ss.add_row(row)

    elif rowset == "guests":
        guests = guest_filter.all_guests()
        ss.add_column("invitee_id", 10)
        ss.add_column("full_name", 80)
        ss.add_column("last_name", 40)
        ss.add_column("first_name", 30)
        ss.add_column("nickname", 30)
        ss.add_column("email", 70)       
        ss.add_column("country", 15)       
        ss.add_column("state", 15)       
        ss.add_column("association", 40)       
        ss.add_column("side", 15)       
        ss.add_column("home_phone", 50)       
        ss.add_column("cell_phone", 50)
        ss.add_column("ma_ev", 15)       
        ss.add_column("ca_ev", 15)       
        for g in guests:
            row = [g.invitee.id,
                   g.full_name(),
                   g.last_name,
                   g.first_name,
                   g.nickname,
                   g.email,
                   g.invitee.country,
                   g.invitee.state,
                   g.invitee.association,
                   g.invitee.side,
                   g.home_phone,
                   g.cell_phone,
                   g.venue_likelihood(venue_ma),
                   g.venue_likelihood(venue_ca)
                   ]
            ss.add_row(row)

    elif rowset == "bus":
        ss.add_column("direction", 30)
        ss.add_column("there", 20)
        ss.add_column("back", 20)
        ss.add_column("full_name", 80)
        ss.add_column("cell_phone", 50)
        ss.add_column("last_name", 40)
        ss.add_column("first_name", 30)
        ss.add_column("nickname", 30)
        ss.add_column("email", 70)       
        ss.add_column("home_phone", 50)       
        for r in RSVP.objects.filter(venue="MA", status__in=RSVPOption.objects.yes()).order_by("bus_selection","guest__last_name"):
            if not r.bus_selection or r.bus_selection == "none": continue
            #print "%s,%s,%s,%s"%(r.guest.full_name(),r.bus_selection,r.guest.cell_phone,r.guest.home_phone)	        for g in guests
            direction=r.bus_selection
            if direction == "from":
                direction = "return only"
            row = [direction,
                   "","",
                   r.guest.full_name(),
                   r.guest.cell_phone,
                   r.guest.last_name,
                   r.guest.first_name,
                   r.guest.nickname,
                   r.guest.email,
                   r.guest.home_phone,
                   ]
            ss.add_row(row)
        
    elif rowset == "gifts":
        inv = Invitee.objects.annotate(Min('gift__received')).filter(gift__isnull=False).order_by('gift__received__min')
        ss.add_column("invite_code", 40)
        ss.add_column("full_name_address", 120)
        ss.add_column("received", 40)       
        ss.add_column("gift description", 200)       
        ss.add_column("notes", 100)       
        ss.add_column("assignment", 40)       
        ss.add_column("status", 40)       
        ss.add_column("thank_you_sent", 40)       
        ss.add_column("registry", 40)       
        ss.add_column("association", 40)       
        ss.add_column("side", 15)       
        ss.add_column("country", 15)       
        ss.add_column("state", 15)       
        for x in inv:
            for g in x.gift_set.order_by('received'):
                row = [x.invite_code,
                       x.full_name()+"\n"+x.full_address,
                       str(g.received),
                       g.description,
                       g.notes,
                       g.assignment,
                       g.status,
                       str(g.thank_you_sent) if g.thank_you_sent else "",
                       g.registry,
                       x.association,
                       x.side,
                       x.country,
                       x.state]
                #print row
                ss.add_row(row)
       
    else:
        raise Http404("Invalid row set")
    
    response = HttpResponse(mimetype='application/vnd.ms-excel')
    response['Content-Disposition'] = 'attachment; filename=export-%s-%s.xls'%(rowset,filter,)
    response.write(ss.finalize())
    return response