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)
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
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
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")
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 )
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)
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
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
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")
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)