def details_department(request, department_id): department = DepartmentService.find_one(department_id) subjects = department.asignatura_set.all() template_name = "department/details.html" template_data = {"department": department, "subjects": subjects} return render_to_response(template_name, template_data, context_instance=RequestContext(request))
def list_departments(request): departments = DepartmentService.find_all() template_name = 'department/list.html' template_data = {"departments": departments} return render_to_response(template_name, template_data, context_instance=RequestContext(request))
def details_department(request, department_id): department = DepartmentService.find_one(department_id) subjects = department.asignatura_set.all() template_name = 'department/details.html' template_data = {'department': department, 'subjects': subjects} return render_to_response(template_name, template_data, context_instance=RequestContext(request))
def edit_department(request, department_id): data_form = {} data_template = {} if request.POST: form = DepartmentEditForm(request.POST) try: if department_id: assert department_id == form.cleaned_data['id'] except AssertionError: messages.error(request, _("Action failed, try again!")) return HttpResponseRedirect('/admin/department/lis') if form.is_valid(): department = DepartmentService.reconstruct_and_save(form) messages.success(request, _("Action completed successfully")) redirect = '/admin/department/details/' + str(department.id) return HttpResponseRedirect(redirect) else: if department_id: department = DepartmentService.find_one(department_id) data_form = DepartmentService.get_form_data(department) form = DepartmentEditForm(initial=data_form) if department_id: data_template['create'] = False data_template['cancel'] = '/admin/department/details/' + str( department_id) else: data_template['create'] = True data_template['form'] = form data_template['action'] = '/admin/department/edit/' template_name = 'department/edit.html' return render_to_response(template_name, data_template, context_instance=RequestContext(request))
def search(request): if request.POST: search_text = request.POST["search_text"] else: search_text = "" departments = DepartmentService.search(search_text) template_name = "department/ajax_search.html" template_data = {"departments": departments} return render_to_response(template_name, template_data, context_instance=RequestContext(request))
def create_department_file(data_form, import_errors_create, department_create): form_department = DepartmentEditForm(data=data_form) if form_department.is_valid(): department = DepartmentService.reconstruct_and_save(form_department) department_create.append(department) else: name = form_department.data['name'] code = form_department.data['code'] import_errors_create.append(name + " (" + code + ")")
def create_department_file(data_form, import_errors_create, department_create): form_department = DepartmentEditForm(data=data_form) if form_department.is_valid(): department = DepartmentService.reconstruct_and_save(form_department) department_create.append(department) else: name = form_department.data["name"] code = form_department.data["code"] import_errors_create.append(name + " (" + code + ")")
def edit_department(request, department_id): data_form = {} data_template = {} if request.POST: form = DepartmentEditForm(request.POST) try: if department_id: assert department_id == form.cleaned_data["id"] except AssertionError: messages.error(request, _("Action failed, try again!")) return HttpResponseRedirect("/admin/department/lis") if form.is_valid(): department = DepartmentService.reconstruct_and_save(form) messages.success(request, _("Action completed successfully")) redirect = "/admin/department/details/" + str(department.id) return HttpResponseRedirect(redirect) else: if department_id: department = DepartmentService.find_one(department_id) data_form = DepartmentService.get_form_data(department) form = DepartmentEditForm(initial=data_form) if department_id: data_template["create"] = False data_template["cancel"] = "/admin/department/details/" + str(department_id) else: data_template["create"] = True data_template["form"] = form data_template["action"] = "/admin/department/edit/" template_name = "department/edit.html" return render_to_response(template_name, data_template, context_instance=RequestContext(request))
def search(request): if request.POST: search_text = request.POST['search_text'] else: search_text = '' departments = DepartmentService.search(search_text) template_name = 'department/ajax_search.html' template_data = {'departments': departments} return render_to_response(template_name, template_data, context_instance=RequestContext(request))
def clean(self): id_departament = self.cleaned_data.get('id') code = self.cleaned_data.get('code') if code: departament = DepartmentService.find_by_code(code) # Al editar puede existir otro departamento con el mismo codigo if id_departament: if departament.id != id_departament: self.add_error('code', _("There cannot be two certifications with the same code")) else: if departament: self.add_error('code', _("There cannot be two certifications with the same code")) return self.cleaned_data
def get_form_data_csv(subject): data = {} if subject: data = { 'name': subject[1], 'course': subject[2], 'code': subject[0], 'quarter': subject[3], 'credits': subject[4], 'duration': subject[5], 'type': subject[6], } try: data['web'] = subject[8] except IndexError: pass department = DepartmentService.find_by_code(subject[7]) data['departament'] = department.id return data
def clean(self): id_departament = self.cleaned_data.get('id') code = self.cleaned_data.get('code') if code: departament = DepartmentService.find_by_code(code) # Al editar puede existir otro departamento con el mismo codigo if id_departament: if departament.id != id_departament: self.add_error( 'code', _("There cannot be two certifications with the same code" )) else: if departament: self.add_error( 'code', _("There cannot be two certifications with the same code" )) return self.cleaned_data
def get_form_data_xml(subject): data = {} if subject: data = { 'name': subject['nombre'], 'course': subject['curso'], 'code': subject['codigo'], 'quarter': subject['cuatrimestre'], 'credits': subject['creditos'], 'duration': subject['duracion'], 'type': subject['tipo'], } try: data['web'] = subject['web'] except KeyError: pass department = DepartmentService.find_by_code(subject['departamento']) data['departament'] = department.id return data
def import_department(request): import_errors_create = [] department_create = [] template_name = "department/import_department.html" template_data = {} if request.method == "POST": form = FileUploadForm(request.POST, request.FILES) if form.is_valid(): file_name = form.cleaned_data["file_upload"] data = file_name.read() file_name.close() try: if form.cleaned_data["file_upload"].content_type == "text/xml": data = xmltodict.parse(data) if data["departamentos"]: if not isinstance(data["departamentos"]["departamento"], list): # 1 value department_data = data["departamentos"]["departamento"] data_form = DepartmentService.get_form_data_xml(department_data) create_department_file(data_form, import_errors_create, department_create) else: for department_data in data["departamentos"]["departamento"]: data_form = DepartmentService.get_form_data_xml(department_data) create_department_file(data_form, import_errors_create, department_create) else: # File CSV for department in csv.reader(data.splitlines()): data_form = DepartmentService.get_form_data_csv(department) create_department_file(data_form, import_errors_create, department_create) if import_errors_create: message = _("Action completed successfully") messages.warning(request, message) template_data["import_errors_create"] = import_errors_create else: message = _("Action completed successfully") messages.success(request, message) form = FileUploadForm() except KeyError as e: message = _("The file structure is wrong. It needs a label called:: " + e.message) form.add_error("file_upload", message) DepartmentService.rollback(department_create) except AttributeError: message = _("Please, check the attributes of the subjects") form.add_error("file_upload", message) DepartmentService.rollback(department_create) except TypeError: message = _("Please, check the xml syntax and data values") form.add_error("file_upload", message) DepartmentService.rollback(department_create) except Exception: message = _("Please, check the file") form.add_error("file_upload", message) DepartmentService.rollback(department_create) else: form = FileUploadForm() template_data["form"] = form return render_to_response(template_name, template_data, context_instance=RequestContext(request))
def import_department(request): import_errors_create = [] department_create = [] template_name = 'department/import_department.html' template_data = {} if request.method == 'POST': form = FileUploadForm(request.POST, request.FILES) if form.is_valid(): file_name = form.cleaned_data['file_upload'] data = file_name.read() file_name.close() try: if form.cleaned_data['file_upload'].content_type == "text/xml": data = xmltodict.parse(data) if data['departamentos']: if not isinstance( data['departamentos']['departamento'], list): # 1 value department_data = data['departamentos'][ 'departamento'] data_form = DepartmentService.get_form_data_xml( department_data) create_department_file(data_form, import_errors_create, department_create) else: for department_data in data['departamentos'][ 'departamento']: data_form = DepartmentService.get_form_data_xml( department_data) create_department_file(data_form, import_errors_create, department_create) else: # File CSV for department in csv.reader(data.splitlines()): data_form = DepartmentService.get_form_data_csv( department) create_department_file(data_form, import_errors_create, department_create) if import_errors_create: message = _('Action completed successfully') messages.warning(request, message) template_data[ 'import_errors_create'] = import_errors_create else: message = _('Action completed successfully') messages.success(request, message) form = FileUploadForm() except KeyError as e: message = _( "The file structure is wrong. It needs a label called:: " + e.message) form.add_error('file_upload', message) DepartmentService.rollback(department_create) except AttributeError: message = _("Please, check the attributes of the subjects") form.add_error('file_upload', message) DepartmentService.rollback(department_create) except TypeError: message = _("Please, check the xml syntax and data values") form.add_error('file_upload', message) DepartmentService.rollback(department_create) except Exception: message = _("Please, check the file") form.add_error('file_upload', message) DepartmentService.rollback(department_create) else: form = FileUploadForm() template_data['form'] = form return render_to_response(template_name, template_data, context_instance=RequestContext(request))
def list_departments(request): departments = DepartmentService.find_all() template_name = "department/list.html" template_data = {"departments": departments} return render_to_response(template_name, template_data, context_instance=RequestContext(request))