def newComment(request, apikey, iderror): #Error에 Comment를 생성함. #커맨드를 생성한 사용자가 Project에 Comment를 쓸수있는지 검증 result, msg, userElement, projectElement, errorElement = validUserPjtError(request.user,apikey,iderror) print msg if not result: return HttpResponse(msg) time = utility.getUTCDatetime() datetime = naive2aware(time) #입력받은 POST데이터에서 comment받아옴 comment = request.POST['comment'] element = Comments.objects.create(uid=userElement, iderror=errorElement, datetime=datetime, comment=comment) #타임존을 적용한다. adtimezone = toTimezone(datetime,projectElement.timezone) print 'newcommand',adtimezone,datetime dict = {'imgsrc':userElement.image_path, 'name': userElement.last_name + userElement.first_name, 'message': comment, 'date': adtimezone.__format__('%Y.%m.%d<br>%H:%M:%S'), 'id' : element.idcomment} print dict return HttpResponse(json.dumps(dict), 'application/json')
def newComment(request, apikey, iderror): #Error에 Comment를 생성함. #커맨드를 생성한 사용자가 Project에 Comment를 쓸수있는지 검증 result, msg, userElement, projectElement, errorElement = validUserPjtError( request.user, apikey, iderror) print msg if not result: return HttpResponse(msg) time = utility.getUTCDatetime() datetime = naive2aware(time) #입력받은 POST데이터에서 comment받아옴 comment = request.POST['comment'] element = Comments.objects.create(uid=userElement, iderror=errorElement, datetime=datetime, comment=comment) #타임존을 적용한다. adtimezone = toTimezone(datetime, projectElement.timezone) print 'newcommand', adtimezone, datetime dict = { 'imgsrc': userElement.image_path, 'name': userElement.last_name + userElement.first_name, 'message': comment, 'date': adtimezone.__format__('%Y.%m.%d<br>%H:%M:%S'), 'id': element.idcomment } print dict return HttpResponse(json.dumps(dict), 'application/json')
def calc_errorScore(errorElement): erscore_parameter = json.loads(get_config('error_score_parameter')) date_er_score = 0.0 quantity_er_score = 0.0 rank_er_score = 0.0 #date 계산 k1 #print naive2aware(getUTCDatetime()) #print errorElement.lastdate d = naive2aware(getUTCDatetime()) - errorElement.lastdate #print d #print d.days, d.seconds, d.microseconds #print erscore_parameter['retention'] #print float(erscore_parameter['retention']) date_er_score = ((erscore_parameter['retention'])/ (erscore_parameter['retention'] + float(d.days) )) * erscore_parameter['date_constant'] #print 'bunmo : '+ str((erscore_parameter['retention'] + d.days)) #print 'daily delta : ' +str(d.days) #print 'bunja: ' + str(erscore_parameter['retention']) #print 'date cal : ' + str(date_er_score) #quantity 계산 k2 runcounts = Appruncount.objects.filter(pid=errorElement.pid) #전체 앱버전별 실행수 errorcounts = Appstatistics.objects.filter(iderror=errorElement) #1개 에러에 대한 앱버전별 실행수 tlb = [] for r in runcounts: for e in errorcounts: if r.appversion == e.appversion: tlb.append({'appversion':r.appversion,'runcount':r.runcount,'errcount':e.count}) break; #print 'calc_errorscore',tlb wholeErrorCounter = 0.0 errorCounter = 0.0 for version_statics in tlb: wholeErrorCounter += version_statics['runcount'] errorCounter += version_statics['errcount'] quantity_er_score = errorCounter/wholeErrorCounter #print 'whole : ' + str(wholeErrorCounter) #print 'errorcount : ' + str(errorCounter) #print 'quantity cal : ' + str(quantity_er_score) #rank 계산 k3 rank_er_score = 0 rank_er_score = rank_to_constant(errorElement.rank) * erscore_parameter['rank_ratio_constant'] #print 'RANK : ' + RANK.toString[errorElement.rank] #print 'rank cal : ' + str(rank_er_score) #최종 ErrorScore 계산 error_Score = (date_er_score + quantity_er_score + rank_er_score) * erscore_parameter['constant'] #print 'last Error Score : ' + str(error_Score) #디비에 저장 errorElement.errorweight = error_Score errorElement.gain1 = float(date_er_score) errorElement.gain2 = float(quantity_er_score) errorElement.save()
def calc_errorScore(errorElement): erscore_parameter = json.loads(get_config('error_score_parameter')) date_er_score = 0.0 quantity_er_score = 0.0 rank_er_score = 0.0 #date 계산 k1 #print naive2aware(getUTCDatetime()) #print errorElement.lastdate d = naive2aware(getUTCDatetime()) - errorElement.lastdate #print d #print d.days, d.seconds, d.microseconds #print erscore_parameter['retention'] #print float(erscore_parameter['retention']) date_er_score = ((erscore_parameter['retention']) / (erscore_parameter['retention'] + float(d.days))) * erscore_parameter['date_constant'] #print 'bunmo : '+ str((erscore_parameter['retention'] + d.days)) #print 'daily delta : ' +str(d.days) #print 'bunja: ' + str(erscore_parameter['retention']) #print 'date cal : ' + str(date_er_score) #quantity 계산 k2 runcounts = Appruncount.objects.filter(pid=errorElement.pid) #전체 앱버전별 실행수 errorcounts = Appstatistics.objects.filter( iderror=errorElement) #1개 에러에 대한 앱버전별 실행수 tlb = [] for r in runcounts: for e in errorcounts: if r.appversion == e.appversion: tlb.append({ 'appversion': r.appversion, 'runcount': r.runcount, 'errcount': e.count }) break #print 'calc_errorscore',tlb wholeErrorCounter = 0.0 errorCounter = 0.0 for version_statics in tlb: wholeErrorCounter += version_statics['runcount'] errorCounter += version_statics['errcount'] quantity_er_score = errorCounter / wholeErrorCounter #print 'whole : ' + str(wholeErrorCounter) #print 'errorcount : ' + str(errorCounter) #print 'quantity cal : ' + str(quantity_er_score) #rank 계산 k3 rank_er_score = 0 rank_er_score = rank_to_constant( errorElement.rank) * erscore_parameter['rank_ratio_constant'] #print 'RANK : ' + RANK.toString[errorElement.rank] #print 'rank cal : ' + str(rank_er_score) #최종 ErrorScore 계산 error_Score = (date_er_score + quantity_er_score + rank_er_score) * erscore_parameter['constant'] #print 'last Error Score : ' + str(error_Score) #디비에 저장 errorElement.errorweight = error_Score errorElement.gain1 = float(date_er_score) errorElement.gain2 = float(quantity_er_score) errorElement.save()