Пример #1
0
 def my_timesheets(self, start, end):
     query = self.all()
     query.filter("google_id = ", users.get_current_user().user_id())
     query.filter("date >= ", convertToDate(start))
     query.filter("date <= ", convertToDate(end))
     query.order("-date")
     query.order("-created")
     return query.fetch(1000)
Пример #2
0
    def update_timsheet(self, items):
        '''
        only updating task currently
        '''
        new_task = items['task'].strip()
        current_key = items['key'].strip()

        errors = self.validate_task(new_task)

        ts = self.get(current_key)
        if users.get_current_user().user_id() <> ts.google_id:
            errors.append('This is not your task to update')
        ts.task = new_task

        try:
            ts.minutes = int(items['minutes'])
        except:
            errors.append('Minutes must be an integer')
        try:
            ts.date = convertToDate(items['date'])
        except:
            errors.append('Invalid date format - yyyy-mm-dd')

        if len(errors) > 0: raise KnownError(errors)

        ts.update()
Пример #3
0
    def save_entry(self, items):
        '''
        Only save or deleting
        no updating
        '''
        errors = []
        self.google_id = users.get_current_user().user_id()
        new_item = items['task'].strip()
        if new_item == '': errors.append('Must enter a value for task')
        self.task = new_item

        try:
            self.minutes = int(items['minutes'])
        except:
            errors.append('Minutes must be an integer')

        try:
            self.date = convertToDate(items['date'])
        except:
            errors.append('Invalid date format - yyyy-mm-dd')

        if items['add'] == 'yes':
            Person().updateTimesheetTask(new_item)

        if len(errors) > 0: raise KnownError(errors)
        self.createNew()
        return str(self.key())
Пример #4
0
    def my_timesheets_csv_by_day(self, start, end, hyphen):
        matrix = {}
        tss = self.my_timesheets(start, end)
        for ts in tss:
            if hyphen == 'yes':
                val = ts.task.split('-')[0].strip()
            else:
                val = ts.task.strip()
            c_date = convertFromDate(ts.date)
            if val in matrix:
                if c_date in matrix[val]:
                    matrix[val][c_date] = matrix[val][c_date] + ts.minutes
                else:
                    matrix[val][c_date] = ts.minutes
            else:
                matrix[val] = {c_date: ts.minutes}

        result = []
        start_date = convertToDate(start)
        end_date = convertToDate(end)
        delta = timedelta(days=1)
        '''
        Create the header
        '''
        header = ['']
        i_date = start_date
        while i_date <= end_date:
            header.append(convertFromDate(i_date))
            i_date += delta
        result.append(header)
        '''
        iterate through the tasks and date range
        '''
        for x in matrix:
            line = [x]
            i_date = start_date
            while i_date <= end_date:
                c_date = convertFromDate(i_date)
                if c_date in matrix[x]:
                    line.append(matrix[x][c_date])
                else:
                    line.append('')
                i_date += delta
            result.append(line)

        return result