示例#1
0
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,
        )
    ]
示例#2
0
    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)
示例#3
0
def autors_view(request):
    return '200 OK', render('authors.html',
                            object_list=[{
                                'name': 'Maxim'
                            }, {
                                'name': 'Baranov'
                            }])
示例#4
0
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)
    ]
示例#5
0
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)
示例#6
0
文件: cbv.py 项目: dorican/fwsgi_app
 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
示例#7
0
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)
    ]
示例#8
0
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")
    ]
示例#9
0
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)
    ]
示例#10
0
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()]
示例#11
0
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)
    ]
示例#12
0
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)
    ]
示例#13
0
    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)
        ]
示例#14
0
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')])
示例#15
0
def contact_view(request):
    page = render(f'{path}/contact.html')

    return '200 OK', [page.encode()]
示例#16
0
def feed_back_email(request):
    page = render(f'{path}/feed_back.html',
                  data={'email': request['parsing_wsgi_data']['email']})

    return '200 OK', [page.encode()]
示例#17
0
 def __call__(self, request):
     content = {}
     content['title'] = 'Главная'
     content['request'] = request
     return '200 OK', render('index.html', content)
示例#18
0
 def __call__(self, request):
     content = {}
     content['title'] = 'Каталог'
     content['data'] = self.object_list
     return '200 OK', render('catalog.html', content)
示例#19
0
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')])
示例#20
0
def css_view(request):
    # print(f'i am in css_view')
    return '222 OK', [render('style.css', folder='./static/')]
示例#21
0
 def __call__(self, request):
     return '200 OK', render('about.html', data=request.get('data', None))
示例#22
0
 def __call__(self, request):
     return '200 OK', render('templates/index.html',
                             data=request.get('data', None))
示例#23
0
 def render_template_with_context(self):
     template_name = self.get_template()
     context = self.get_context_data()
     return '200 OK', [render(template_name, **context)]