Exemplo n.º 1
0
    def add_deliveries(self, deadline_path, deliveries):
        for delivery in deliveries['items']:
            #tag late deliveries
            if is_late(delivery):
                name = '{}_late'.format(str(delivery['number']))
            else:
                name = str(delivery['number'])
            delivery_path = create_folder(join(deadline_path, name))
            file_filters = [{
                'field': 'delivery',
                'comp': 'exact',
                'value': delivery['id']
            }]
            files = self.SimplifiedFileMeta.search(result_fieldgroups=[
                'period', 'assignment', 'assignment_group'
            ],
                                                   filters=file_filters)

            feedbacks = self.SimplifiedStaticFeedback.search(
                result_fieldgroups=[
                    'period', 'assignment', 'assignment_group'
                ],
                filters=file_filters)

            key = delivery_path.replace(self.root_dir, '')

            self.metadata[key] = {}
            self.metadata[key]['query_result'] = delivery

            self.add_files(delivery_path, files)
Exemplo n.º 2
0
    def add_deliveries(self, deadline_path, deliveries):
        for delivery in deliveries['items']:
            #tag late deliveries
            if is_late(delivery):
                name = '{}_late'.format(str(delivery['number']))
            else:
                name = str(delivery['number'])
            delivery_path = create_folder(join(deadline_path, name))
            file_filters = [{'field':'delivery',
                             'comp':'exact',
                             'value':delivery['id']}]
            files = self.SimplifiedFileMeta.search(
                result_fieldgroups=['period', 'assignment', 'assignment_group'],
                filters=file_filters)

            feedbacks = self.SimplifiedStaticFeedback.search(
                result_fieldgroups=['period', 'assignment', 'assignment_group'],
                filters=file_filters)

            key = delivery_path.replace(self.root_dir, '')
            
            self.metadata[key] = {}
            self.metadata[key]['query_result'] = delivery

            self.add_files(delivery_path, files)
Exemplo n.º 3
0
    def add_deadlines(self, assignment_group_path, deadlines):
        number = 1  # number for tagging the deadlines
        for deadline in deadlines['items']:
            #format deadline
            deadlinetime = deadline_format(deadline['deadline'])
            deadlinetime = '{}_{}'.format(number, deadlinetime)
            number += 1

            deadline_path = create_folder(
                join(assignment_group_path, deadlinetime))
            delivery_filters = [{
                'field': 'deadline',
                'comp': 'exact',
                'value': deadline['id']
            }]
            deliveries = self.SimplifiedDelivery.search(
                result_fieldgroups=[
                    'period', 'assignment', 'assignment_group', 'deadline',
                    'delivered_by', 'candidates'
                ],
                filters=delivery_filters)

            key = deadline_path.replace(self.root_dir, '')

            self.metadata[key] = {}
            self.metadata[key]['query_result'] = deadline

            self.add_deliveries(deadline_path, deliveries)
Exemplo n.º 4
0
 def add_files(self, delivery_path, files):
     file_path = create_folder(join(delivery_path, 'files'))
     for delivery_file in files['items']:
         path = join(file_path, delivery_file['filename'])
         f = open(path, 'w')
         f.close()
         key = path.replace(self.root_dir, '')
         self.metadata[key] = {}
         self.metadata[key]['query_result'] = delivery_file
Exemplo n.º 5
0
 def add_files(self, delivery_path, files):
     file_path = create_folder(join(delivery_path, 'files'))
     for delivery_file in files['items']:
         path = join(file_path, delivery_file['filename'])
         f = open(path, 'w')
         f.close()
         key = path.replace(self.root_dir, '')
         self.metadata[key] = {}
         self.metadata[key]['query_result'] = delivery_file
Exemplo n.º 6
0
    def add_subjects(self, devilry_path, subjects):
        for subject in subjects['items']:
            subject_path = create_folder(join(devilry_path, subject['short_name']))
            #search for this subjects periods
            period_filters = [{'field':'parentnode',
                               'comp':'exact',
                               'value':subject['id']}]
            periods = self.SimplifiedPeriod.search(result_fieldgroups=['subject'], filters=period_filters)

            key = subject_path.replace(self.root_dir, '')
            self.metadata[key] = {}
            self.metadata[key]['query_result'] = subject
            self.add_periods(subject_path, periods)
Exemplo n.º 7
0
    def add_assignmentgroups(self, assignment_path, assignment_groups):
        for assignment_group in assignment_groups['items']:

            assignment_group_path = create_folder(join(assignment_path, str(assignment_group['id'])))
            deadline_filters = [{'field':'assignment_group',
                                 'comp':'exact',
                                 'value':assignment_group['id']}]
            deadlines = self.SimplifiedDeadline.search(
                result_fieldgroups=['period', 'assignment', 'assignment_group'],
                filters=deadline_filters, order_by='deadline')
            key = assignment_group_path.replace(self.root_dir, '')

            self.metadata[key] = {}
            self.metadata[key]['query_result'] = assignment_group

            self.add_deadlines(assignment_group_path, deadlines)
Exemplo n.º 8
0
    def add_periods(self, subject_path, periods):
        for period in periods['items']:
            period_path = create_folder(join(subject_path, period['short_name']))
            assignment_filters = [{'field':'parentnode',
                                   'comp':'exact',
                                   'value':period['id']}]
            assignments = self.SimplifiedAssignment.search(
                result_fieldgroups=['subject', 'period'],
                filters=assignment_filters)
            #add period to tree dictionary
            key = period_path.replace(self.root_dir, '')

            self.metadata[key] = {}
            self.metadata[key]['query_result'] = period

            self.add_assignments(period_path, assignments)
Exemplo n.º 9
0
    def add_subjects(self, devilry_path, subjects):
        for subject in subjects['items']:
            subject_path = create_folder(
                join(devilry_path, subject['short_name']))
            #search for this subjects periods
            period_filters = [{
                'field': 'parentnode',
                'comp': 'exact',
                'value': subject['id']
            }]
            periods = self.SimplifiedPeriod.search(
                result_fieldgroups=['subject'], filters=period_filters)

            key = subject_path.replace(self.root_dir, '')
            self.metadata[key] = {}
            self.metadata[key]['query_result'] = subject
            self.add_periods(subject_path, periods)
Exemplo n.º 10
0
    def add_assignments(self, period_path, assignments):
        for assignment in assignments['items']:
            assignment_path = create_folder(join(period_path, assignment['short_name']))
            a_group_filters = [{'field':'parentnode',
                                'comp':'exact',
                                'value':assignment['id']}]

            assignment_groups = self.SimplifiedAssignmentGroup.search(
                result_fieldgroups=['period', 'assignment', 'users'],
                filters=a_group_filters)

            key = assignment_path.replace(self.root_dir, '')

            self.metadata[key] = {}
            self.metadata[key]['query_result'] = assignment

            self.add_assignmentgroups(assignment_path, assignment_groups)
Exemplo n.º 11
0
    def add_periods(self, subject_path, periods):
        for period in periods['items']:
            period_path = create_folder(
                join(subject_path, period['short_name']))
            assignment_filters = [{
                'field': 'parentnode',
                'comp': 'exact',
                'value': period['id']
            }]
            assignments = self.SimplifiedAssignment.search(
                result_fieldgroups=['subject', 'period'],
                filters=assignment_filters)
            #add period to tree dictionary
            key = period_path.replace(self.root_dir, '')

            self.metadata[key] = {}
            self.metadata[key]['query_result'] = period

            self.add_assignments(period_path, assignments)
Exemplo n.º 12
0
    def add_assignments(self, period_path, assignments):
        for assignment in assignments['items']:
            assignment_path = create_folder(
                join(period_path, assignment['short_name']))
            a_group_filters = [{
                'field': 'parentnode',
                'comp': 'exact',
                'value': assignment['id']
            }]

            assignment_groups = self.SimplifiedAssignmentGroup.search(
                result_fieldgroups=['period', 'assignment', 'users'],
                filters=a_group_filters)

            key = assignment_path.replace(self.root_dir, '')

            self.metadata[key] = {}
            self.metadata[key]['query_result'] = assignment

            self.add_assignmentgroups(assignment_path, assignment_groups)
Exemplo n.º 13
0
    def add_assignmentgroups(self, assignment_path, assignment_groups):
        for assignment_group in assignment_groups['items']:

            assignment_group_path = create_folder(
                join(assignment_path, str(assignment_group['id'])))
            deadline_filters = [{
                'field': 'assignment_group',
                'comp': 'exact',
                'value': assignment_group['id']
            }]
            deadlines = self.SimplifiedDeadline.search(
                result_fieldgroups=[
                    'period', 'assignment', 'assignment_group'
                ],
                filters=deadline_filters,
                order_by='deadline')
            key = assignment_group_path.replace(self.root_dir, '')

            self.metadata[key] = {}
            self.metadata[key]['query_result'] = assignment_group

            self.add_deadlines(assignment_group_path, deadlines)
Exemplo n.º 14
0
    def add_deadlines(self, assignment_group_path, deadlines):
        number = 1  # number for tagging the deadlines
        for deadline in deadlines['items']:
            #format deadline
            deadlinetime = deadline_format(deadline['deadline'])
            deadlinetime = '{}_{}'.format(number, deadlinetime)
            number += 1

            deadline_path = create_folder(join(assignment_group_path, deadlinetime))
            delivery_filters = [{'field':'deadline',
                                 'comp':'exact',
                                 'value':deadline['id']}]
            deliveries = self.SimplifiedDelivery.search(
                result_fieldgroups=['period', 'assignment', 'assignment_group', 'deadline'],
                filters=delivery_filters)

            key = deadline_path.replace(self.root_dir, '')

            self.metadata[key] = {}
            self.metadata[key]['query_result'] = deadline

            self.add_deliveries(deadline_path, deliveries)