def create_course(request): urls = request.get('urls', None) print(f'я в create_course view') try: if request['post_params']: # print(f'request["post_params"]--->{request["post_params"]}') cat_id = request['post_params']['category_id'] # print(f'cat_id = {cat_id}') cat_obj = site.find_category_by_id(int(cat_id)) # print(f'cat_obj type = {type(cat_obj)}, {cat_obj.name}') type_of_course = 'interactive' if request["post_params"]['on_off_line']: type_of_course = 'OfflineCourse' course = site.create_course(type_of_course, request['post_params']['name'], cat_obj.id) course.observers.append(email_notifier) course.observers.append(sms_notifier) site.courses.append(course) # создаем новую запись о курсе в БД (имя и id категории) course.mark_new() UnitOfWork.get_current().commit() # получаем id курса из БД, чтобы вписать его в объект класса находящийся в списке site.courses curs_id = MapperRegistry.get_current_mapper('course').find_by_name( course.name) course_obj = site.get_course(course.name) course_obj.id = curs_id logger.log( f"В категорию {cat_obj.name} добавлен курс {request['post_params']['name']}" ) return '200 OK', [ render( 'create_course.html', value= f"В категорию {cat_obj.name} добавлен курс {request['post_params']['name']}", urls=urls, categories=site.categories, ) ] except Exception as e: pass return '200 OK', [ render( 'create_course.html', value="create_course", urls=urls, categories=site.categories, ) ]
def __call__(self, request): content = {} if request['method'] == 'POST': with open('message.json', 'w') as file: file.write( json.dumps(request['data'], ensure_ascii=False, indent=2)) print(request['data']) content['title'] = 'Главная' return '200 OK', render('index.html', content) else: content['title'] = 'Контакты' content['data'] = self.object_list return '200 OK', render('contacts.html', content)
def autors_view(request): return '200 OK', render('authors.html', object_list=[{ 'name': 'Maxim' }, { 'name': 'Baranov' }])
def contacts_view(request): value = request.get('value', None) urls = request.get('urls', None) get_params = request.get('get_params', None) # Используем шаблонизатор return '200 OK', [ render('contacts.html', value=value, urls=urls, get_params=get_params) ]
def copy_course(request): logger.log(f'Внутри copy_course') urls = request.get('urls', None) print(f'request------>{request}') if request['post_params']: post_data = request['post_params'] old_course = post_data['name'] logger.log(f'Ищем курс с именем --> {old_course}') source_course_obj = site.get_course(old_course) logger.log(f'Поиск вернул объект --> {source_course_obj}') # формируем список категорий длоя вывода на страницу cats_all = MapperRegistry.get_current_mapper('category').all() cats_dict = {} for k in cats_all: cats_dict[k.id - 1] = k.name if source_course_obj: new_name = f'copy_{old_course}' new_course = source_course_obj.clone() new_course.name = new_name new_course.mark_new() UnitOfWork.get_current().commit() print(new_course.__dict__) site.courses.append(new_course) logger.log(f'создана копия курса --> {new_course}') return '200 OK', [ render('courses.html', value="courses_view", urls=urls, cats_dict=cats_dict, courses=site.courses) ] else: logger.log(f'Не удалось создать копию курса {old_course}') return '200 OK', [ render('courses.html', value="courses_view", urls=urls, cats_dict=cats_dict, courses=site.courses) ] else: error_404_view(request)
def __call__(self, *args, **kwargs): # byte_context = bytes(self.context, 'utf-8') # return '200 OK', byte_context out_template = render(self.template, object_list=[{ 'context': f'{self.context}' }]) byte_out_template = bytes(out_template, 'utf-8') return '200 OK', byte_out_template
def add_student(request): urls = request.get('urls', None) # if not site.students: # result = MapperRegistry.get_current_mapper('student').all() # site.students = result # if not site.courses: # result = MapperRegistry.get_current_mapper('course').all() # site.courses = result if 'post_params' in request and 'course_name' in request[ "post_params"] and 'student_name' in request["post_params"]: # print(f'request["post_params"]--->{request["post_params"]}') name_student = request['post_params']['student_name'] course_name = request['post_params']['course_name'] student_obj = site.get_student(name_student) course_obj = site.get_course(course_name) student_id_from_db = MapperRegistry.get_current_mapper( 'student').find_by_name(name_student) course_id_from_db = MapperRegistry.get_current_mapper( 'course').find_by_name(course_name) # записывам данные в БД (id курса, id студента) MapperRegistry.get_current_mapper('student').add_course( course_id_from_db, student_obj.id) if student_obj and course_obj: course_obj.add_student(student_obj) return '200 OK', [ render( 'add_student.html', info_text= f'Студент {student_obj.name} добавлен на курс {course_obj.name}', courses=site.courses, students=site.students) ] return '200 OK', [ render('add_student.html', info_text="add-student_view", courses=site.courses, students=site.students) ]
def create_student(request): urls = request.get('urls', None) if 'post_params' in request and 'name' in request["post_params"]: # print(f'request["post_params"]--->{request["post_params"]}') name_student = request['post_params']['name'] # print(f'{name_student}') for k in site.students: if k.name == name_student: logger.log( f'Студент с именем {name_student} уже зарегистрирован') return '200 OK', [ render( 'create_student.html', value="create-student_view", info_text= f'Студент с именем {name_student} уже зарегистрирован') ] stud_obj = site.create_user(type_='student', name=name_student) site.students.append(stud_obj) stud_obj.mark_new() UnitOfWork.get_current().commit() logger.log( f'Студент с именем {name_student} зарегистрирован в системе') return '200 OK', [ render( 'create_student.html', value="create-student_view", info_text= f'Студент с именем {name_student} зарегистрирован в системе') ] # else: # return '200 OK', [render('create_student.html', # value="create-student_view")] # except Exception as e: # print(f'Ошибка создания объекта студента {e}') # return '200 OK', [render('create_student.html', value="create-student_view")] return '200 OK', [ render('create_student.html', value="create-student_view") ]
def create_category(request): urls = request.get('urls', None) try: if request['post_params']: post_data = request['post_params'] new_category = post_data['name'] # проверить есть ли уже такая категория for item in site.categories: # print(f'идем по категориям . ищем совпадение с новой') if item.name == new_category: logger.log(f'Категория уже существует') return '200 OK', [ render( 'create_category.html', value= "Категория уже существует. Введите другое название!", urls=urls, categories=site.categories) ] # если нет, то создать новую # print(f'Создаем новую категорию') # category = None # if category_id: # category = site.find_category_by_id(int(category_id)) new_category_obj = site.create_category(new_category) site.categories.append(new_category_obj) new_category_obj.mark_new() UnitOfWork.get_current().commit() logger.log(f'site.categories--->{site.categories}') logger.log(f'получены POST данные: {post_data}') except Exception as e: pass return '200 OK', [ render('create_category.html', value="create_category", urls=urls, categories=site.categories) ]
def index_view(request): page = render(f'{path}/index.html', course_list=[{ 'name': 'Python' }, { 'name': 'Java' }, { 'name': 'PHP' }, { 'name': 'JS' }]) return '200 OK', [page.encode()]
def debug_view(request): urls = request.get('urls', None) print(f'site.students--->{site.students}') for k in site.students: print(k.courses) print(f'site.courses--->{site.courses}') print(f'site.categories--->{site.categories}') return '200 OK', [ render('deb.html', urls=urls, students=site.students, courses=site.courses, categories=site.categories) ]
def index_view(request): secret = request.get('secret', None) urls = request.get('urls', None) get_params = request.get('get_params', None) css_url = request.get('css_url', None) logger.log('----> Отработал index_view') # Используем шаблонизатор return '200 OK', [ render('index.html', secret=secret, urls=urls, get_params=get_params, css_url=css_url) ]
def __call__(self, request): urls = request.get('urls', None) get_params = request.get('get_params', None) mapper = MapperRegistry.get_current_mapper('course') cou = mapper.all() type_of_course = 'interactive' # проверяю есть ли объекты курсов в списке site.course if site.courses: for item in cou: in_list = False for el in site.courses: if item.name == el.name and item.category_id == el.category_id: in_list = True if not in_list: # не нашли в списке. надо создать объект и положить в список course = site.create_course(type_of_course, item.name, item.category_id) site.courses.append(course) else: # создаем объекты курсов и загружаем их в список for item in cou: course = site.create_course(type_of_course, item.name, item.category_id) site.courses.append(course) cats_all = MapperRegistry.get_current_mapper('category').all() cats_dict = {} for k in cats_all: cats_dict[k.id - 1] = k.name print(f'cats_dict---->{cats_dict}') return '200 OK', [ render('courses.html', value="courses_view", urls=urls, cats_dict=cats_dict, courses=cou) ]
def movies_view(request: Request) -> Response: page = render('films.html', object_list=[{'name': 'Green mile'}, {'name': 'Schindler list'}]) return Response('200 OK', [page.encode(encoding='utf-8')])
def contact_view(request): page = render(f'{path}/contact.html') return '200 OK', [page.encode()]
def feed_back_email(request): page = render(f'{path}/feed_back.html', data={'email': request['parsing_wsgi_data']['email']}) return '200 OK', [page.encode()]
def __call__(self, request): content = {} content['title'] = 'Главная' content['request'] = request return '200 OK', render('index.html', content)
def __call__(self, request): content = {} content['title'] = 'Каталог' content['data'] = self.object_list return '200 OK', render('catalog.html', content)
def authors_view(request: Request) -> Response: page = render('authors.html', object_list=[{'name': 'Leo'}, {'name': 'Kate'}]) return Response('200 OK', [page.encode(encoding='utf-8')])
def css_view(request): # print(f'i am in css_view') return '222 OK', [render('style.css', folder='./static/')]
def __call__(self, request): return '200 OK', render('about.html', data=request.get('data', None))
def __call__(self, request): return '200 OK', render('templates/index.html', data=request.get('data', None))
def render_template_with_context(self): template_name = self.get_template() context = self.get_context_data() return '200 OK', [render(template_name, **context)]