Beispiel #1
0
def getHistory(request):
    ticketFilters = {}
    if 'ticket' in request.REQUEST:
        ticketFilters['ticket'] = models.Ticket.objects.get(
            id=request.REQUEST['ticket'])
    if 'user' in request.REQUEST:
        ticketFilters['user'] = models.User.objects.get(
            id=request.REQUEST['user'])
    properties = list(
        timemachine.filter(models.Property.objects.filter(**ticketFilters)))

    if 'ticket' in request.REQUEST:
        relationsTo = timemachine.filter(
            models.Relation.objects.filter(ticket=request.REQUEST['ticket']))
        relationsFrom = timemachine.filter(
            models.Relation.objects.filter(
                relatedTo=request.REQUEST['ticket']))
        relations = list(relationsTo) + list(relationsFrom)
    else:
        relations = list(timemachine.filter(models.Relation.objects.all()))
    events = properties + relations
    events.sort(key=lambda x: x.when, reverse=True)
    page = int(request.REQUEST.get('page', 0))
    PAGE_SIZE = 100
    first = page * PAGE_SIZE
    bound = first + PAGE_SIZE
    moreHistoryData = json.dumps(dict(request.REQUEST, page=page +
                                      1)) if bound < len(events) else ""
    paged = events[first:bound]
    return _render(request,
                   'history.html',
                   events=paged,
                   moreHistoryData=moreHistoryData)
Beispiel #2
0
def _teamMemberWorking( member, date ):
	attendances = list( timemachine.filter(
			models.Attendance.objects.filter( date = date, teamMember = member ) ) )
	if len( attendances ) == 0:
		return _isWorkingDay( date )
	else:
		return attendances[ -1 ].workingDay
Beispiel #3
0
def _isWorkingDay( date ):
	nonTeamAttendances = list( timemachine.filter(
			models.Attendance.objects.filter( date = date, teamMember__isnull = True ) ) )
	if len( nonTeamAttendances ) == 0:
		return settings.WEEKDAY_IS_WORKING_DAY( date.weekday() )
	else:
		return nonTeamAttendances[ -1 ].workingDay
Beispiel #4
0
def searchTicketByFreeText(request):
    term = request.REQUEST["term"]
    properties = list(timemachine.filter(models.Property.objects.filter(value__contains=term)))
    result = [
        dict(label="%s: %s" % (p.name, p.value), value="viewTicket?ticket=%d" % p.ticket.id) for p in properties[-10:]
    ]
    return HttpResponse(json.dumps(result), mimetype="application/json")
Beispiel #5
0
def _dateExceptions( date ):
	teamAttendances = timemachine.filter( models.Attendance.objects.filter(
		date = date, teamMember__isnull = False ) )
	result = collections.OrderedDict()
	for attendance in teamAttendances:
		result[ attendance.user.username ] = attendance.workingDay
	workingDay = _isWorkingDay( date )
	return list( x for x in result.iteritems() if x[ 1 ] != workingDay )
Beispiel #6
0
def _dateExceptions(date):
    teamAttendances = timemachine.filter(
        models.Attendance.objects.filter(date=date, teamMember__isnull=False))
    result = collections.OrderedDict()
    for attendance in teamAttendances:
        result[attendance.user.username] = attendance.workingDay
    workingDay = _isWorkingDay(date)
    return list(x for x in result.iteritems() if x[1] != workingDay)
Beispiel #7
0
def _teamMemberWorking(member, date):
    attendances = list(
        timemachine.filter(
            models.Attendance.objects.filter(date=date, teamMember=member)))
    if len(attendances) == 0:
        return _isWorkingDay(date)
    else:
        return attendances[-1].workingDay
Beispiel #8
0
def _isWorkingDay(date):
    nonTeamAttendances = list(
        timemachine.filter(
            models.Attendance.objects.filter(date=date,
                                             teamMember__isnull=True)))
    if len(nonTeamAttendances) == 0:
        return settings.WEEKDAY_IS_WORKING_DAY(date.weekday())
    else:
        return nonTeamAttendances[-1].workingDay
Beispiel #9
0
def searchTicketByFreeText(request):
    term = request.REQUEST['term']
    properties = list(
        timemachine.filter(
            models.Property.objects.filter(value__contains=term)))
    result = [
        dict(label="%s: %s" % (p.name, p.value),
             value="viewTicket?ticket=%d" % p.ticket.id)
        for p in properties[-10:]
    ]
    return HttpResponse(json.dumps(result), mimetype="application/json")
Beispiel #10
0
def getHistory(request):
    ticketFilters = {}
    if "ticket" in request.REQUEST:
        ticketFilters["ticket"] = models.Ticket.objects.get(id=request.REQUEST["ticket"])
    if "user" in request.REQUEST:
        ticketFilters["user"] = models.User.objects.get(id=request.REQUEST["user"])
    properties = list(timemachine.filter(models.Property.objects.filter(**ticketFilters)))

    if "ticket" in request.REQUEST:
        relationsTo = timemachine.filter(models.Relation.objects.filter(ticket=request.REQUEST["ticket"]))
        relationsFrom = timemachine.filter(models.Relation.objects.filter(relatedTo=request.REQUEST["ticket"]))
        relations = list(relationsTo) + list(relationsFrom)
    else:
        relations = list(timemachine.filter(models.Relation.objects.all()))
    events = properties + relations
    events.sort(key=lambda x: x.when, reverse=True)
    page = int(request.REQUEST.get("page", 0))
    PAGE_SIZE = 100
    first = page * PAGE_SIZE
    bound = first + PAGE_SIZE
    moreHistoryData = json.dumps(dict(request.REQUEST, page=page + 1)) if bound < len(events) else ""
    paged = events[first:bound]
    return _render(request, "history.html", events=paged, moreHistoryData=moreHistoryData)