示例#1
0
def add_fish(request):
    context = RequestContext(request)
    
    if request.method == 'POST':
        # get data from input form
        input_comp      = request.POST.get("comp")
        input_user      = request.POST.get("user")
        input_species   = request.POST.get("species")
        input_weight    = request.POST.get("weight")
        input_lat       = float(request.POST.get("lat"))
        input_lon       = float(request.POST.get("lon"))
        
        user            = User.objects.get(username = input_user)                
        comp            = Tournament.objects.get(pk=input_comp)
        standings_query = Standings.objects.filter(tournament=comp).filter(discipline__name='Fiskning')
        
        if not standings_query:
            # make new standings object if it does not exist
            disc        = Discipline.objects.get(name='Fiskning')
            standings   = Standings(discipline = disc,
                                  tournament = comp)
            standings.save()
        else:
            standings = standings_query.all()
            
        # create points for new fish in DB
        p = Points(points       = input_weight, 
                   user         = user,
                   standings    = standings,
                   score        = 4)
        p.save()
        # create  fish in DB
        f = Fish(species    = input_species,
                 weight     = input_weight,
                 lat        = input_lat,
                 lon        = input_lon,
                 points     = p)        
        f.save()
        
        fishes = Fish.objects.all()
        coord = []
        for fish in fishes:
            coord.append([fish.lat, fish.lon])
        return render_to_response('fish_list.html', {'request':request,
                                                  'fishes': fishes,
                                                  'coord':coord}, context)

    else:
        comps = Tournament.objects.all()
        users = User.objects.all()
        return render(request, 'new_fish.html', {'request':request,
                                              'comps': comps,
                                              'users': users})
def award(request, *args, **kwargs):
    if request.method == 'POST':
        form = AwardForm(request.POST)
        if form.is_valid():
            user = get_object_or_404(User, username=kwargs['username'])
            projectbadge = ProjectBadge.objects.get(pk=request.POST['award_id'])
            points = Points(user=user,projectbadge=projectbadge,value=request.POST['points'],description=request.POST['comment'])
            points.save()
            return HttpResponseRedirect('/users/%s/projects/%s/badges' % (kwargs['username'], kwargs['projectname']))

    else:
        form = AwardForm()

    return render(request, 'core/award.html', { 'form': form, })
            project = get_object_or_404(Project,name=kwargs['projectname'])
        except Http404, e:
            context = { 'message' : e.__str__().split()[1] + ' not found' }
            return HttpResponse(json.dumps(context),'application/json',404)
            
        award = request.GET['award']

        try:
            point_args['projectbadge'] = get_object_or_404(ProjectBadge,name=award)
        except Http404, e:
            context = { 'message' : 'Project not found' }
            return HttpResponse(json.dumps(context), 'application/json', 404)

        # award points
        points = Points(**point_args)
        points.save()

        return HttpResponseRedirect('/users/%s/projects/%s' % (point_args['user'], project))

@api_view(('GET',))
@renderer_classes((renderers.TemplateHTMLRenderer,renderers.JSONRenderer))
def master_project_list(request):
    queryset = Project.objects.filter(private=False)

    if request.accepted_renderer.format == 'html':
        actives = []
        non_actives = []
        for project in queryset:
            if project.active:
                actives.append(project)
            else: