Add caffeine frontend

Yes, I know this is a huge diff - even without migration scripts. (I didn't want to add partially functioning junk to Liquid in a bunch of smaller/stacked diffs. Nonetheless, I apologize in advance.)

I've reviewed it several times, but I'd like it to get some fresh eyes before getting merged.

@CJS7070: [TODO] We need to either implement force-vend SSH capability, or remove it outright. We also need to decide on how soda images are going to work. Whether you want to do those in this diff or a separate one is totally your call since I see arguments for both sides.
Edit: fixed, thanks <form action=...">!


On Thu, Sep 4, 2014 at 2:53 AM, Ace Nassri <ace.nassri@gmail.com> wrote:

> The boolean was used to prevent an infinite loop. I agree with @bjryan2
> that it's unnecessarily hacky and there ought to be a better way to do
> things.
>
> The main thing I'm trying to prevent is something along the lines of
> '/intranet/caffeine/user/netid1/?q=netid2'. That behaves correctly on the
> frontend (and shows netid2's profile), but it just feels unpolished to me.
>
>
> On Wed, Sep 3, 2014 at 11:03 PM, Cole Gleason <notifications@github.com>
> wrote:
>
>> In liquid/intranet/caffeine_manager/user/views.py:
>>
>> > @@ -0,0 +1,108 @@
>> > +from django.shortcuts import render_to_response, redirect, get_object_or_404
>> > +from django.template import RequestContext
>> > +from intranet.models import Member, Vending
>> > +from utils.group_decorator import group_admin_required
>> > +from django.core.urlresolvers import reverse
>> > +from intranet.caffeine_manager.user.forms import VendingForm
>> > +from django.db.models import Q
>> > +from decimal import Decimal
>> > +
>> > +def view(request, netid=None):
>> > +    searchArg=request.GET.get('q') or ''
>> > +    vend_user=None
>> > +    is_caffeine_admin=request.user.is_group_admin('Caffeine')
>> > +
>> > +    if searchArg and (not request.GET.get('searched')):
>>
>> I'm actually confused as to why we need the boolean at all. Can you
>> explain please @ace-n <https://github.com/ace-n>?
>>
>> —
>> Reply to this email directly or view it on GitHub
>> <https://github.com/acm-uiuc/liquid/pull/252/files#r17094762>.
>>
>
>