Example #1
0
def user_profile(request):
    if request.user.is_authenticated() == False:
        return HttpResponseRedirect("/")
    user = User.objects.filter(username=request.user)[0]
    user_profile = User_profile.objects.filter(user=user)[0]

    comments = Comment.objects.filter(author=user_profile).order_by('-date','-time')[:5]
    reviews = Review.objects.filter(author=user_profile).order_by('-date','-time')[:5]

    state = []
    if request.POST:
        form = Change_password_form(request.POST)
        if form.is_valid():
            if user.check_password(form.cleaned_data['old_pass']):
                if form.cleaned_data['new_pass'] == form.cleaned_data['new_pass_repeat']:
                    user.set_password(form.cleaned_data['new_pass'])
                    user.save()
                    return HttpResponseRedirect("/profile")
                else:
                    state.append("You have to repeat new password twice")
            else:
                state.append("You have to type correct current password")
        return my_render_to_response('profile.html',{'user':user,'user_profile':user_profile,'state' : state, 'form': form, 'comments':comments,'reviews':reviews} ,request)

    form = Change_password_form()
    return my_render_to_response('profile.html',{'user':user,'user_profile':user_profile,'state': state, 'form': form, 'comments':comments,'reviews':reviews}, request)
Example #2
0
def create_user(request):
    if request.user.is_authenticated():
        return HttpResponseRedirect("/")

    state = []

    if request.POST:
        form = Create_user_form(request.POST)
        if form.is_valid():
            user = User()
            if User.objects.filter(username = form.cleaned_data['username']):
                state.append("This username is already used!")
            else:
                user.username=form.cleaned_data['username']
            user.set_password(form.cleaned_data['password'])
            if User.objects.filter(email = form.cleaned_data['email']):
                state.append("This email address is already used!")
            else:
                user.email=form.cleaned_data['email']
            if len(state)==0:
                user.save()

                user_profile = User_profile()
                user_profile.age=form.cleaned_data['age']
                user_profile.city=form.cleaned_data['city']
                user_profile.user = user
                user_profile.save()
                return HttpResponseRedirect("/create_done")
        return my_render_to_response('create_user_form.html',{'state' : state, 'form': form}, request)

    form = Create_user_form()
    return my_render_to_response('create_user_form.html',{'form': form}, request)
Example #3
0
def beer_view(request, beer_id=""):
    if beer_id == "": # lista wszystkich piw
        list = Beer.objects.all()
        return my_render_to_response("beer_browsing_list.html",{'list': list}, request)

    else: # konkretne piwo
        beer = Beer.objects.filter(id=beer_id)[0]
        comments = Comment.objects.filter(beer=beer).order_by('-date','-time')
        reviews = Review.objects.filter(beer=beer).order_by('-date','-time')

        if len(reviews)>0:
            avg = beer.community_mark
        else:
            avg = 'This beer doesn\'t have any reviews yet'

        if request.POST and 'comment' in request.POST:
            comment = Comment(author = User_profile.objects.filter(user = request.user)[0],
                beer=beer,
                description=request.POST['comment']
                )
            comment.save()
        list = []
        for r in reviews:
            list.append((r,'r'))
        for c in comments:
            list.append((c,'c'))
        list = sorted(list,key=lambda c: c[0].time)
        list = sorted(list,key=lambda c: c[0].date)

        form = comment_form.Comment_form()
        return my_render_to_response("beer.html",{'list':list, 'beer':beer, 'avg':avg ,'form':form}, request)
Example #4
0
def brewery_view(request, brewery_id=""):
    if brewery_id == "":
        breweries_list = get_breweries_list_with_marks()
        return my_render_to_response("brewery_browsing_list.html",{'list': breweries_list},request)
    else:
        brewery = Brewery.objects.filter(id=brewery_id)[0]
        list = Beer.objects.filter(brewery=brewery)
        return my_render_to_response("brewery.html",{'brewery':brewery,'list':list}, request)
Example #5
0
def tag_view(request, tag_name=""):
    if tag_name=="":
        tags = Tag.objects.all().order_by("name")

        return my_render_to_response("tag_browsing_list.html",{'user':request.user,'tags':tags},request)

    beer_list = Beer.objects.filter(tags__name__in=(tag_name,))
    return my_render_to_response("tag.html",{'tag':tag_name, 'list':beer_list},request)
Example #6
0
def country_view(request, country_id=""):
    if country_id == "":
        list = Country.objects.all()

        return my_render_to_response("country_browsing_list.html",{'list': list},request)
    else:
        list, country = get_list_of_breweries_from_country_with_marks(country_id)

        return my_render_to_response("country.html",{'country':country, 'list':list},request)
Example #7
0
def message_view(request):
    if request.POST:
        if 'hash' in request.POST:
            try:
                os.remove("beerdiary/img/captche/"+request.POST['hash']+".jpg")
            except Exception:
                pass

        sent_form = MessageForm(request.POST)
        if sent_form.is_valid():
            from hashlib import md5
            m = md5()
            m.update(sent_form.cleaned_data['captcha'])
            hash=m.hexdigest()

            if hash == sent_form.cleaned_data['hash']:
                message = sent_form.save(commit=False)
                if request.user.is_authenticated():
                    up = User_profile.objects.filter(user=request.user)[0]
                    message.author = up
                message.save()
                return HttpResponseRedirect("/contact/sent/")
            else:
                hash = make_captcha()
                m = sent_form.save(commit=False)
                form = MessageForm(initial={"hash":hash,"captcha":"",'reason':m.reason,'content':m.content})
        else:
            hash = make_captcha()
            sent_form.instance.hash = hash
            form = sent_form
    else:
        hash = make_captcha()
        form = MessageForm(initial={'hash':hash})
    return my_render_to_response("message.html",{'form':form, 'captcha': hash },request)
Example #8
0
def home(request):
    news = News.objects.order_by("-date", "-time")[:5]
    form = login_form.Login_form()

    bbc = []
    beers = Beer.objects.order_by("-added")[:5]
    breweries = Brewery.objects.order_by("-added")[:5]
    countries = Country.objects.order_by("-added")[:5]

    users = User.objects.order_by("-date_joined")[:5]

    rc = []
    comments = Comment.objects.order_by("-time").order_by("-date")[:5]
    reviews = Review.objects.order_by("-time").order_by("-date")[:5]

    for i in range(len(beers)):
        bbc.append((beers[i],'beer'))
    for i in range(len(breweries)):
        bbc.append((breweries[i],'brewery'))
    for i in range(len(countries)):
        bbc.append((countries[i],'country'))
    for i in range(len(comments)):
        rc.append((comments[i],'comment'))
    for i in range(len(reviews)):
        rc.append((reviews[i],'review'))

    bbc = sorted(bbc, key=lambda i: i[0].added, reverse=True)
    rc = sorted(rc,key=lambda i: i[0].date, reverse=True)


    return my_render_to_response("home.html",{'news':news,'bbc':bbc,'rc':rc,'users':users, 'form':form}, request)
Example #9
0
def search_view(request):
    query = ""
    category = ""
    result = {'beers':0,'beers_by_tag':0,'breweries':0,'countries':0,'tags':0}

    if request.GET and request.GET['q']:
        query = request.GET['q']
        category = request.GET['category']
        if category == "everywhere":
            result["beers"] = Beer.objects.filter(name__icontains=query).order_by("name")
            result["beers_by_tag"] = Beer.objects.filter(tags__name__icontains=query).distinct().order_by("name")
            result["breweries"] = Brewery.objects.filter(name__icontains=query).order_by("name")
            result["countries"] = Country.objects.filter(name__icontains=query).order_by("name")
            result["tags"] = Tag.objects.filter(name__icontains=query).order_by("name")
        elif category == "beers":
            result["beers"] = Beer.objects.filter(name__icontains=query).order_by("name")
            result["beers_by_tag"] = Beer.objects.filter(tags__name__icontains=query).order_by("name")
        elif category == "breweries":
            result["breweries"] = Brewery.objects.filter(name__icontains=query).order_by("name")
        elif category=="countries":
            result["breweries"] = Country.objects.filter(name__icontains=query).order_by("name")
        elif category == "tags":
            result["tags"] = Tag.objects.filter(name__icontains=query).order_by("name")

    return my_render_to_response("search.html",{'query':query,'category':category, 'result':result}, request)
Example #10
0
def get_recommendation(request):
    beers = Beer.objects.all()
    user = request.user
    mt = Marked_tag.objects.filter(user=user)

    checked = []
    for beer in beers:
        mark = 0
        for tag in beer.tags.all():
            this_marked_tag = mt.filter(tag=tag)
            if this_marked_tag.count()==0:
                continue
            mark+=this_marked_tag[0].mark
        checked.append((beer,mark))
    checked = sorted(checked, key= lambda b: b[1], reverse=True)[:10]
    return my_render_to_response('get_recommendation.html',{'list':checked},request)
Example #11
0
def user_profile_edit(request):
    if request.user.is_authenticated() == False:
        return HttpResponseRedirect("/")
    user = User.objects.filter(username=request.user)[0]
    user_profile = User_profile.objects.filter(user=user)[0]

    if request.POST:
        form = Edit_info_form(request.POST)
        if form.is_valid():
            user_profile.age = form.cleaned_data['age']
            user_profile.city = form.cleaned_data['city']
            user_profile.save()
            return HttpResponseRedirect("/profile")
        return render_to_response('profile_edit.html',{'form':form,'user':request.user}, context_instance=RequestContext(request))

    form = Edit_info_form(initial={'age': user_profile.age,'city':user_profile.city})

    return my_render_to_response('profile_edit.html',{'form': form,'user':request.user}, request)
Example #12
0
def add_review(request, beer_id):
    if request.user.is_authenticated() == False:
        return HttpResponseRedirect("/beer/"+beer_id)

    beer = Beer.objects.filter(id=beer_id)[0]
    user = request.user

    form = review_form.Review_form()

    if request.POST:
        form = review_form.Review_form(request.POST)
        if form.is_valid():
            review = form.save(commit=False)
            review.author = User_profile.objects.filter(user = user)[0]
            review.beer = beer

            weights = {'flavour':10,'aroma':10,'palate':7,'appearance':3}
            review.averaged_mark = "{0:.2f}".format(float((weights['flavour']*float(review.flavour_mark)+weights['aroma']*float(review.aroma_mark)+weights['palate']*float(review.palate_mark)+weights['appearance']*float(review.appearance_mark))/30))
            review.save()

            cm = beer.community_mark * beer.amount_of_marks
            beer.amount_of_marks+=1
            cm+=float(review.averaged_mark)
            beer.community_mark = "{0:.2f}".format(cm/beer.amount_of_marks)
            beer.save()
            
            for tag in beer.tags.all():
                mt = Marked_tag.objects.filter(user=request.user).filter(tag = tag)
                if mt:
                    mt=mt[0]
                    sum = mt.mark * mt.amount
                    sum+=float(review.averaged_mark)
                    mt.amount+=1
                    sum="{0:.2f}".format(sum/mt.amount)
                    mt.mark = sum
                    mt.save()
                else:
                    mt=Marked_tag(tag=tag,user=request.user, amount=1,mark=review.averaged_mark)
                    mt.save()

            return HttpResponseRedirect('/beer/'+beer_id)

    return my_render_to_response('add_review.html',{'beer':beer,'form':form}, request)
Example #13
0
def login_user(request):
    if request.user.is_authenticated():
        return HttpResponseRedirect("/")

    state = ""
    username = password = ''
    if request.POST:
        username = request.POST.get('login')
        password = request.POST.get('password')

        user = authenticate(username=username, password=password)
        if user is not None:
            if user.is_active:
                login(request, user)
                return HttpResponseRedirect("/")
            else:
                state = "Your account is not active, please contact admin."
        else:
            state = "Your username and/or password were incorrect."
    return my_render_to_response('login_form.html', {'state':state, 'username': username},request)
Example #14
0
def create_user_done(request):
    return my_render_to_response("create_user_okay.html", {}, request)
Example #15
0
def message_sent_view(request):
    return my_render_to_response('message_sent_view.html',{}, request)
Example #16
0
def news_view(request):
    list = News.objects.order_by("-date", "-time")[:]
    return my_render_to_response('news_view.html',{'list':list},request)