def build(self, **kwargs): root_id = getattr(settings, 'SIS_IMPORT_ROOT_ACCOUNT_ID', None) for campus in get_all_campuses(): campus_id = account_sis_id([root_id, campus.label]) self.data.add(AccountCSV(campus_id, root_id, campus)) for college in get_all_colleges(): college_id = account_sis_id( [root_id, college.campus_label, college.name]) campus_id = account_sis_id([root_id, college.campus_label]) self.data.add(AccountCSV(college_id, campus_id, college)) for department in get_departments_by_college(college): dept_id = account_sis_id([ root_id, college.campus_label, college.name, department.label ]) self.data.add(AccountCSV(dept_id, college_id, department)) for curriculum in get_curricula_by_department( department, future_terms=2, view_unpublished=True): curr_id = account_sis_id([ root_id, college.campus_label, college.name, department.label, curriculum.label ]) if self.data.add(AccountCSV(curr_id, dept_id, curriculum)): # Update the Curriculum model for this curriculum try: model = Curriculum.objects.get( curriculum_abbr=curriculum.label) except Curriculum.DoesNotExist: model = Curriculum( curriculum_abbr=curriculum.label) model.full_name = account_name(curriculum) model.subaccount_id = curr_id model.save() return self._write()
def build(self, **kwargs): root_id = getattr(settings, 'SIS_IMPORT_ROOT_ACCOUNT_ID', None) for campus in get_all_campuses(): campus_id = account_sis_id([root_id, campus.label]) self.data.add(AccountCSV(campus_id, root_id, campus)) for college in get_all_colleges(): college_id = account_sis_id([root_id, college.campus_label, college.name]) campus_id = account_sis_id([root_id, college.campus_label]) self.data.add(AccountCSV(college_id, campus_id, college)) for department in get_departments_by_college(college): dept_id = account_sis_id([root_id, college.campus_label, college.name, department.label]) self.data.add(AccountCSV(dept_id, college_id, department)) for curriculum in get_curricula_by_department( department, future_terms=2): curr_id = account_sis_id([root_id, college.campus_label, college.name, department.label, curriculum.label]) if self.data.add(AccountCSV(curr_id, dept_id, curriculum)): # Update the Curriculum model for this curriculum try: model = Curriculum.objects.get( curriculum_abbr=curriculum.label) except Curriculum.DoesNotExist: model = Curriculum( curriculum_abbr=curriculum.label) model.full_name = account_name(curriculum) model.subaccount_id = curr_id model.save() return self._write()
def _canvas_account_from_academic_soc(soc): id_parts = [] campus = None college = None for item in soc: itype = item._type.lower() if itype == 'swscampus': id_parts.append(settings.SIS_IMPORT_ROOT_ACCOUNT_ID) campus = get_campus_by_label(item._code) try: id_parts.append(campus.label) except AttributeError: raise ASTRAException('Unknown Campus: {}'.format(item)) elif itype == 'swscollege': if campus is None: raise ASTRAException('Missing Campus, {}'.format(item)) college = get_college_by_label(campus, item._code) try: id_parts.append(college.name) except AttributeError: raise ASTRAException('Unknown College: {}'.format(item)) elif itype == 'swsdepartment': if campus is None or college is None: raise ASTRAException('Missing College, {}'.format(item)) dept = get_department_by_label(college, item._code) try: id_parts.append(dept.label) except AttributeError: raise ASTRAException('Unknown Department: {}'.format(item)) else: raise ASTRAException('Unknown SoC type, {}'.format(item)) if not len(id_parts): raise ASTRAException('SoC empty list') return account_sis_id(id_parts)
soc[1]._code)) else: raise ASTRAException('Unknown second level SOC: %s' % ( soc[1]._type)) if len(soc) > 2: if soc[2]._type == 'swsdepartment': if campus and college: dept = self._get_department_from_code(college, soc[2]._code) id_parts.append(dept.label) else: raise ASTRAException('Unknown third level SOC: %s' % ( soc[0])) sis_id = account_sis_id(id_parts) if sis_id not in self._canvas_ids: canvas_account = get_account_by_sis_id(sis_id) self._canvas_ids[sis_id] = canvas_account.account_id return (sis_id, self._canvas_ids[sis_id]) def load_all_admins(self, options={}): # loader running? queued = Admin.objects.queued() if len(queued): # look for pid matching queue_id, adjust gripe accordingly try: os.kill(queued[0].queue_id, 0) raise ASTRAException('loader already running %s' % (