def post(): print(request.json['fitness']) new_fit = request.json['fitness'] new_date = request.json['date'] new_model = request.json['model'] new_run = Run(date=new_date, modelName=new_model, fitness=new_fit) new_run.save() return response
def run_pep8(git_url, path, name, rev): """Check out the git project, run pep8, store the results""" # Do not allow duplicates of the same project/rev old_run = Run.objects.filter(project_name=name, git_revision=rev) if not old_run: run = Run(project_name=name, project_url=git_url, git_revision=rev) run.save() pep8_pipe = os.popen("pep8 -r %s" % path) parse_pep8(run, path, pep8_pipe) pep8_pipe.close() os.system("rm -rf %s" % os.path.dirname(path))
def afficher_challenge(request, id): error=False if request.method == 'POST': # S'il s'agit d'une requête POST form = AddRunForm(request.POST) # Nous reprenons les données if form.is_valid(): # Nous vérifions que les données envoyées sont valides # Ici nous pouvons traiter les données du formulaire date = form.cleaned_data['date'] score=form.cleaned_data['score'] user=request.user challenge = get_object_or_404(Challenge, id=id) run=Run(date=date,score=score,challenge=challenge,user=user) run.save() print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!CREATION RUN!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") else: # Si ce n'est pas du POST, c'est probablement une requête GET form = AddRunForm() # Nous créons un formulaire vide challenge = get_object_or_404(Challenge, id=id) member=challenge.team.filter(id=request.user.id).exists() #Creation du graphique #Create the data #Voir highcharts pour les options series=[] series_options_terms={} for joueur in challenge.team.all(): serie_joueur= {'options': {'source': Run.objects.filter(user=joueur,challenge=challenge)}} serie_joueur['terms']=[{''.join(["score_",joueur.username]):'score'},{''.join(["date_",joueur.username]):'date'}] series.append(serie_joueur) series_options_terms[''.join(["date_",joueur.username])]=[''.join(["score_",joueur.username])] #Ajouter l'objectif serie_obj= {'options': {'source': Challenge.objects.filter(id=challenge.id),'colors': 'red'},'terms':['goal_date','goal']} series_options_terms['goal_date']=['goal'] series.append(serie_obj) challengeData =DataPool(series) print(series_options_terms) #Step 2: Create the Chart object series_options0 =[{'options':{ 'type': 'spline', 'stacking': False}, 'terms':series_options_terms }] cht = Chart( datasource = challengeData, series_options=series_options0, chart_options = {'title': {'text': 'Performances'}, 'xAxis': {'title': {'text': 'Date'}}, 'yAxis': {'title': {'text': 'Scores'}} }) return render(request, 'challenges/challenge_page.html', locals())
class Crawler(object): def __init__(self, site, name=None): self.site = site name = name or str( localtime( now() ) ) self.run = Run( name=name, site = site ) self.run.save() self.br = M.Browser() self.br.set_handle_robots(False) def crawl(self,result ,force=False): if result.link.available == False or result.status != None: if not force: return [] #: get page res=self.br.open(result.link.url,timeout=2.0) result.status = res.code result.content_type = res.info()['Content-Type'] if not result.content_type or result.content_type.find('text/') <0: #: PDF ... result.save() return [] result.set_output(res.get_data()) result.save() #: page links next_links=result.children() #: page has cases for c in result.link.case_set.all(): case_result, case_result_created= LinkResult.objects.get_or_create( run=self.run, link=result.link, case = c ) #: TOOD: this implementation expect only 1 depth if case_result.status == None: if c.form_index >= 0 : self.br.select_form( nr = c.form_index ) for k,v in c.form_params.items(): self.br[ k ] = v res = self.br.submit() case_result.status = res.code case_result.content_type=res.info()['Content-Type'] if result.content_type or result.content_type.find('text/') >=0: case_result.set_output(res.get_data() ) case_result.save() self.br.open(result.link.url,timeout=2.0,) #: access original page return next_links def start(self,url=None,parent=None,follow=True ,force=False): #: parent : parent Link instance self.br.clear_history() time.sleep(0.01 ) url = url or self.site.start_url result =None try: result = self.run.provide_result( url, parent ) if result == None: return next_links = self.crawl( result,force=force) except: if result: result.errors = traceback.format_exc() result.save() return if not follow: return for path in next_links: self.start( path ,result.link)