示例#1
0
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')
示例#2
0
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')
示例#3
0
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()
示例#4
0
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()