Ejemplo n.º 1
0
def add_lesson():
    form = request.form
    lesson = Lesson(name=form['name'])
    lesson.save()
    company = Company.objects(id=form['company_id']).first()
    company.insert_lesson(lesson)
    company.save()
    return redirect(url_for('.write_point', lesson_id=lesson.id))
Ejemplo n.º 2
0
 def setUp(self):
     self.slot_9 = Slot(9, "08:00-09:00", False)
     self.slot_10 = Slot(10, "09:00-10:00", False)
     self.slot_11 = Slot(11, "10:00-11:00", False)
     self.beg_spin_class = Lesson("Spin Class", "cardio", "beginner", 55,
                                  10, self.slot_10)
     self.int_spin_class = Lesson("Spin Class", "cardio", "intermediate",
                                  55, 10, self.slot_9)
     self.adv_spin_class = Lesson("Spin Class", "cardio", "advanced", 55,
                                  10, self.slot_11)
Ejemplo n.º 3
0
def login():
    lesson1 = Lesson.get_by_lesson_id('3845127e-e6d9-4a15-b6e0-14276ace1cd8')
    lesson2 = Lesson.get_by_lesson_id('618af7ad-3d63-4609-a7f1-50704106b9e4')

    if 'name' in session:
        return render_template("home.html",
                               name=session['name'],
                               lesson1=lesson1,
                               lesson2=lesson2,
                               status="home")
    else:
        return render_template("login.html", status="login")
Ejemplo n.º 4
0
def create():
    # Check if user exists and signed in
    jwt_user = get_jwt_identity()
    user = User.get_or_none(User.name == jwt_user)
    if not user:
        return error_401("Unauthorized action")

    # Retrieve data from json
    title = request.form.get("title")
    description = request.form.get("description")
    if (str(request.form.get("teach")) == "true"):
        teach = True
    elif (str(request.form.get("teach")) == "false"):
        teach = False
    else:
        return error_401("Invalid teach input")
    skill = request.form.get("skill")

    # Retrieve image from json 
    image_valid = False
    if "image" in request.files:
        image_file = request.files['image']
        if image_file and allowed_file(image_file.filename):
            image_file.filename = secure_filename(image_file.filename)
            output   	  = upload_file_to_s3(image_file)
            image_valid = True

    # Check title and description and then create new lesson
    if title and description:
        if image_valid:
            lesson = Lesson(title=title, description=description, teach=teach, owner=user, skill=skill, image=image_file.filename)
        else:
            lesson = Lesson(title=title, description=description, teach=teach, owner=user, skill=skill)
        if lesson.save():
            lesson = {
                'id': lesson.id,
                'title': lesson.title,
                'description': lesson.description,
                'rating': lesson.rating,
                'teach': lesson.teach,
                'owner_id': lesson.owner_id,
                'owner_name': lesson.owner.name,
                'skill_id': lesson.skill_id,
                'skill_name': lesson.skill.name,
                'image_url': lesson.image_url
            }
            return success_201("New lesson created successfully", lesson) 
        else:
            return error_401("Create lesson failed")    
    else:
        return error_401("Invalid title or description")
Ejemplo n.º 5
0
def lesson_create():
    data = request.form
    lesson = Lesson(data["crn"], data["date"], data["code"], data["instructor"], data["location"], data["assistant"], data["credit"], data["cap"])
    db = Database()
    db.create_lesson(lesson)

    return redirect(url_for("admin_page"))
Ejemplo n.º 6
0
def index():

    jwt_user = get_jwt_identity()
    user = User.get_or_none(User.name == jwt_user)

    if not user:
        return error_401("Unauthorized action")

    user_bookmarks = Lesson.select().join(
        Bookmark,
        on=(Bookmark.lesson == Lesson.id)).where(Bookmark.owner == user.id)

    data = [{
        'id': lesson.id,
        'title': lesson.title,
        'description': lesson.description,
        'rating': lesson.rating,
        'teach': lesson.teach,
        'owner_id': lesson.owner_id,
        'owner_name': lesson.owner.name,
        'skill_id': lesson.skill_id,
        'skill_name': lesson.skill.name,
        'image_url': lesson.image_url
    } for lesson in user_bookmarks]

    return success_201("Returned list of the current user's bookmarks", data)
Ejemplo n.º 7
0
def update(lesson_id):
    # Check for valid json
    if not request.is_json:
        return error_401("Reponse is not JSON")

    # Check if user exists and signed in
    jwt_user = get_jwt_identity()
    user = User.get_or_none(User.name == jwt_user) 

    if not user:
        return error_401("Unauthorized action")

    # Retrieve data from json
    data = request.get_json()
    title = data['title']
    description = data['description']

    # Check title and description and then create new lesson
    if title and description:
        lesson = Lesson.update(title=title, description=description).where(Lesson.id==lesson_id).execute()
        if lesson:
            return success_201("Update lesson successfully", lesson)
        else:
            return error_401("Update lesson failed")    
    else:
        return error_401("Invalid title or description")
Ejemplo n.º 8
0
def index_with_filter():
    # Retrieve arguments
    teach = request.args.get('teach')
    if (teach == "true"):
        teach_option = True
    elif (teach == "false"):
        teach_option = False
    else:
        return error_401("Invalid teach input")

    # Retrieve lessons from database
    lessons = [ 
        {
            'id': lesson.id,
            'title': lesson.title,
            'description': lesson.description,
            'rating': lesson.rating,
            'owner_id': lesson.owner_id,
            'owner_name': lesson.owner.name,
            'teach': lesson.teach,
            'skill_id': lesson.skill_id,
            'skill_name': lesson.skill.name,
            'image_url': lesson.image_url
        } for lesson in Lesson.select().where(Lesson.teach == teach_option)
    ]
    return success_200(lessons)
Ejemplo n.º 9
0
def _load_fake_data(session: Session):
    lessons_names = ['Математика', 'Программирование', 'Философствуем за кружечкой пенного',
                     'Алгоритмы и структуры данных', 'Линейная алгебра', 'Мат. статистика',
                     'Физкультура']
    group1 = Group(group_name='1-МДА-7')
    group2 = Group(group_name='1-МДА-9')
    session.add(group1)
    session.add(group2)

    for key, it in enumerate(lessons_names):
        lesson = Lesson(lesson_title=it)
        lesson.groups.append(group1)
        if key % 2 == 0:
            lesson.groups.append(group2)
        session.add(lesson)

    faker = Faker('ru_RU')
    group_list = [group1, group2]
    session.commit()

    for _ in range(50):
        full_name = faker.name().split(' ')
        age = faker.random.randint(16, 25)
        address = faker.address()
        group = faker.random.choice(group_list)
        student = Student(full_name, age, address, group.id)
        session.add(student)

    session.commit()
    session.close()
Ejemplo n.º 10
0
def login_user():
    error = None
    name = request.form['name']
    password = request.form['password_hash']
    lesson1 = Lesson.get_by_lesson_id('3845127e-e6d9-4a15-b6e0-14276ace1cd8')
    lesson2 = Lesson.get_by_lesson_id('618af7ad-3d63-4609-a7f1-50704106b9e4')

    if User.login_valid(name, password):
        return render_template('home.html',
                               name=session['name'],
                               lesson1=lesson1,
                               lesson2=lesson2,
                               status="home")
    else:
        error = 'Invalid credentials'
        session['name'] = None
        return render_template('login.html', error=error, status="login")
def select_all():
    lessons = []
    sql = 'SELECT * FROM lessons'
    results = run_sql(sql)
    for row in results:
        lesson = Lesson(row['name'], row['id'])
        lessons.append(lesson)
    return lessons
def select(id):
    lesson = None
    sql = 'SELECT * FROM lessons WHERE id = %s'
    values = [id]
    result = run_sql(sql, values)[0]
    if result is not None:
        lesson = Lesson(result['name'], result['id'])
    return lesson
Ejemplo n.º 13
0
def lessons(member):
    lessons = []
    sql = 'SELECT lessons.* FROM lessons INNER JOIN bookings ON bookings.lesson_id = lessons.id WHERE bookings.member_id = %s'
    values = [member.id]
    results = run_sql(sql, values)
    for row in results:
        lesson = Lesson(row['name'], row['id'])
        lessons.append(lesson)
    return lessons
Ejemplo n.º 14
0
def add_lesson():
    class_name = request.form["class_name"]
    class_type = request.form["class_type"]
    difficulty = request.form["difficulty"]
    duration = request.form["duration"]
    capacity = request.form["capacity"]
    slot_id = request.form["slot_id"]
    lesson = Lesson(class_name, class_type, difficulty, duration, capacity,
                    slot_id)
    lesson_repository.save(lesson)
    return redirect('/classes')
Ejemplo n.º 15
0
def update_lesson(id):
    class_name = request.form['class_name']
    class_type = request.form['class_type']
    difficulty = request.form['difficulty']
    duration = request.form['duration']
    capacity = request.form['capacity']
    slot_id = request.form['slot_id']
    lesson = Lesson(class_name, class_type, difficulty, duration, capacity,
                    slot_id, id)
    lesson_repository.update(lesson)
    return redirect('/classes')
Ejemplo n.º 16
0
def select(id):
    lesson = None
    sql = "SELECT * FROM lessons WHERE id = %s"
    values = [id]
    result = run_sql(sql, values)[0]

    if result is not None:
        lesson = Lesson(result['class_name'], result['class_type'],
                        result['difficulty'], result['duration'],
                        result['capacity'], result['slot_id'], result['id'])
    return lesson
Ejemplo n.º 17
0
def select_all():
    lessons = []
    sql = "SELECT * FROM lessons"
    results = run_sql(sql)

    for row in results:
        lesson = Lesson(row['class_name'], row['class_type'],
                        row['difficulty'], row['duration'], row['capacity'],
                        row['slot_id'], row['id'])
        lessons.append(lesson)
    return lessons
Ejemplo n.º 18
0
def lessons(member):
    bookings = []
    sql = "SELECT * FROM lessons INNER JOIN bookings ON bookings.lesson_id = lessons.id WHERE member_id = %s"
    values = [member.id]
    results = run_sql(sql, values)

    for row in results:
        lesson = Lesson(row['class_name'], row['class_type'],
                        row['difficulty'], row['duration'], row['capacity'],
                        row['slot_id'], row['id'])
        bookings.append(lesson)
    return bookings
Ejemplo n.º 19
0
    def create_from_json(self, json):
        lesson, info = Lesson.parse(json)
        lesson, exists = self.helper.if_lesson(lesson)
        code = self.helper.is_exists(lesson, info)
        
        if code == StatusCode.ok:
            if not exists:
                db.session.add(lesson)
                db.session.commit()
            info.lesson_id = lesson.id
            db.session.add(info)
            db.session.commit()

            return (lesson, code)

        return (None, code)
Ejemplo n.º 20
0
def index():
    # Retrieve lessons from database
    lessons = [ 
        {
            'id': lesson.id,
            'title': lesson.title,
            'description': lesson.description,
            'rating': lesson.rating,
            'owner_id': lesson.owner_id,
            'owner_name': lesson.owner.name,
            'teach': lesson.teach,
            'skill_id': lesson.skill_id,
            'skill_name': lesson.skill.name,
            'image_url': lesson.image_url
        } for lesson in Lesson.select()
    ]
    return success_200(lessons)
Ejemplo n.º 21
0
def add_image():
    jwt_user = get_jwt_identity()
    user = User.get_or_none(User.name == jwt_user) 

    if user:
        image_file = request.files.get('image')
        request_data = request.get_json()
        if request_data:
            lesson_id = request_data.lesson_id
            query = Lesson.update(image = image_file.filename).where(Lesson.id == lesson_id)
            if query.execute() and upload_file_to_s3(image_file):
                return success_201('Image successfully saved and uploaded!')
            else:
                return error_401('Error when saving image to S3 or database!')
        else:
            return error_401('Requested data is not JSON or not found!')
    else:
        error_401('User not found!')
Ejemplo n.º 22
0
def show(lesson_id):
    # Retrieve particular lesson from database
    lesson = Lesson.get_or_none(Lesson.id == lesson_id)

    if lesson:
        data = {
            'id': lesson.id,
            'title': lesson.title,
            'description': lesson.description,
            'rating': lesson.rating,
            'teach': lesson.teach,
            'owner_id': lesson.owner_id,
            'owner_name': lesson.owner.name,
            'skill_id': lesson.skill_id,
            'skill_name': lesson.skill.name,
            'image_url': lesson.image_url
        }
        return success_200(data)
    else:
        return error_404("Lesson does not exist")
Ejemplo n.º 23
0
def search_lessons():

    search_value = request.args['search_value']

    teach_arg = request.args['teach']
    if str(teach_arg) == 'true':
        teach=True
    else:
        teach=False

    list_of_skills = []
    final_lessons_list = []
    
    split_search_value = search_value.lower().split(" ") #This is a list []

    for word in split_search_value: #loop through the split search string
        for lesson in Lesson.select().where(Lesson.teach == teach): #loop through all rows in Lesson
            if (word in lesson.title.lower()) or (word in lesson.skill.name.lower()) or (word in lesson.description.lower()): #if a word from the split search string is part of the lesson title, append it to a list
                final_lessons_list.append(lesson)

                    
    if len(final_lessons_list) > 0:
        
        data = [
            {
            'id': lesson.id,
            'title': lesson.title,
            'description': lesson.description,
            'rating': lesson.rating,
            'teach': lesson.teach,
            'owner_id': lesson.owner_id,
            'owner_name': lesson.owner.name,
            'skill_id': lesson.skill_id,
            'skill_name': lesson.skill.name,
            'image_url': lesson.image_url
            } for lesson in final_lessons_list
        ]

        return success_201('success testing', data)
    else:
        return success_201('No lessons matched the search query', [])
Ejemplo n.º 24
0
def navigate(user, step_type, direction):
    data = attempt_cache.get_data()
    try:
        steps = data['steps']
        position = data['current_position']
        lesson_id = data['lesson_id']
    except KeyError:
        return False

    if direction < 0:
        direction = -1
        start = position - 1
        stop = 0
    else:
        direction = 1
        start = position + 1
        stop = len(steps) + 1

    if (position + direction) > len(steps) or (position + direction) < 1:
        return False

    if step_type == "all":
        data['current_position'] = position + direction
        attempt_cache.set_data(data)
        return True

    lesson = Lesson.get(user, lesson_id)

    steps = lesson.items()
    for step_pos in range(start, stop, direction):
        step = steps[step_pos - 1]
        if step.block['name'] == step_type:
            data['current_position'] = step_pos
            attempt_cache.set_data(data)
            return True
    return False
Ejemplo n.º 25
0
def update_lesson(id):
    name = request.form['name']
    lesson = Lesson(name, id)
    lesson_repository.update(lesson)
    return redirect('/lessons')
 def setUp(self):
     self.lesson_1 = Lesson('Sushi Basics', 5)
Ejemplo n.º 27
0
import repositories.member_repository as member_repository
import repositories.lesson_repository as lesson_repository
import repositories.booking_repository as booking_repository
from models.member import Member
from models.lesson import Lesson
from models.booking import Booking
import pdb

member_1 = Member('John Smith')
member_2 = Member('Jill Jones')
member_3 = Member('Samantha Ferguson')
member_repository.save(member_1)
member_repository.save(member_2)
member_repository.save(member_3)

lesson_1 = Lesson('Sushi Basics')
lesson_2 = Lesson('German Breads: Advanced Level')
lesson_repository.save(lesson_1)
lesson_repository.save(lesson_2)

booking_1 = Booking(member_1, lesson_1)
booking_2 = Booking(member_1, lesson_2)
booking_3 = Booking(member_2, lesson_1)
booking_repository.save(booking_1)
booking_repository.save(booking_2)
booking_repository.save(booking_3)

#pdb.set_trace

# member_1.name = 'John\'s new name 443'
# member_repository.update(member_1)
Ejemplo n.º 28
0
def create_lesson():
    name = request.form['name']
    lesson = Lesson(name)
    lesson_repository.save(lesson)
    return redirect('/lessons')
Ejemplo n.º 29
0
mark_rae = Member('Mark', 'Rae', 33, "male", True, True)
member_repository.save(mark_rae)
sarah_burns = Member('Sarah', 'Burns', 28, "female", False, True)
member_repository.save(sarah_burns)
chris_rettie = Member('Chris', 'Rettie', 35, "male", True, True)
member_repository.save(chris_rettie)
jill_rettie = Member('jill', 'Rettie', 36, "female", False, True)
member_repository.save(jill_rettie)

# class Lesson:

#     def __init__(self, class_name, class_type, difficulty, duration, capacity, slot_id = None, id=None):
#         self.class_name = class_name
#         self.class_type = class_type
#         self.difficulty = difficulty
#         self.duration = duration
#         self.capacity = capacity
#         self.slot_id = slot_id #time slot number references slot primary key
#         self.id = id

beg_spin_class = Lesson("Spin Class", "cardio", "beginner", 55, 10, slot_10)
lesson_repository.save(beg_spin_class)
int_spin_class = Lesson("Spin Class", "cardio", "intermediate", 55, 10, slot_9)
lesson_repository.save(int_spin_class)
adv_spin_class = Lesson("Spin Class", "cardio", "advanced", 55, 10, slot_11)
lesson_repository.save(adv_spin_class)

test_booking = Booking(mark_rae, beg_spin_class)
booking_repository.save(test_booking)