Пример #1
0
 def test_no_dibs(self): 
     reg = Registration()
     up = UserProfile.objects.get(user=self.u1)
     reg.user_profile = up
     reg.number = 15
     reg.race_class = self.race_class
     reg.pax_class = None
     reg.event = self.e4
     reg.club = self.c
     reg.save()   
     
     s = Session()
     s.event = self.e4
     s.name = "AM"
     s.club = self.c
     s.save()
     
     result = Result()
     result.reg = reg
     result.session = s
     result.club = self.c
     result.save()
     
     for k in range(0, 3):
         r = Run()
         r.base_time = 10.0
         r.calc_time = 10.0
         r.index_time = 10.0
         r.result = result
         r.club = self.c
         r.save()        
     
     self.c.assign_dibs()
     self.assertEqual(len(Dibs.objects.all()), 0) 
                     
     reg.delete()
     s.delete()
Пример #2
0
def upload_results(request, event_id): 
    validate_error = dict()

    event = Event.objects.get(pk=event_id)
    admin = is_club_admin(request.user, event.club)
    if not admin: 
        return HttpResponseForbidden()

    try: 
        name = request.POST.get('name') 
        if not name: 
            validate_error['name'] = "you must name the session"
            raise ValueError

        session = Session()
        session.club = event.club
        session.event = event
        session.save()

        f = StringIO.StringIO(request.FILES['results_file'].read())

        results = parse_axtime(event, session, f)

        if isinstance(results, dict): #some kind of error happened
            validate_error = results
            raise ValueError

        transaction.rollback()    
        return HttpResponse(content=json.dumps({'msg': "success"}), mimetype="application/json", status=200)
        
    except Exception:
        #import traceback
        #tb = traceback.format_exc()
        session.delete()
        transaction.rollback()
        print json.dumps(validate_error)
        return HttpResponse(content=json.dumps(validate_error), mimetype="application/json", status=400)