Esempio n. 1
0
 def language(self):
     form = LanguageForm()
     languages = Language.query.all()
     if request.method == "POST":
         if form.validate_on_submit():
             isSaved, file_name = save_file(form.lang_image.data,
                                            "language")
             new_language = Language(
                 language_name=form.lang_name.data,
                 language_image=file_name,
             )
             try:
                 db.session.add(new_language)
                 db.session.commit()
                 return redirect(url_for("LanguageView:language", id=id))
             except Exception as e:
                 return "There was an issue in adding the language" + str(e)
         else:
             return render_template("all_languages.html",
                                    form=form,
                                    languages=languages)
     else:
         return render_template("all_languages.html",
                                form=form,
                                languages=languages)
Esempio n. 2
0
    def add_ad(self):
        form = AdsForm()
        form.ad_continent.choices = Continents.getContinentsForSelectField()
        form.ad_languages.choices = Language.getLanguagesForSelectField()
        q_form = request.form

        questionnaire_questions = q_form.getlist('questionnaire_question[]')
        questionnaire_questions_tags = q_form.getlist('questionnaire_tags[]')
        questionnaire_answer_to_write = q_form.getlist('answer_to_write[]')

        if form.validate_on_submit():
            print('validated')
            isSaved, file_name = save_file(form.image.data, "ads")
            if not isSaved:
                return "Ad image/Video not uploaded, please try again."

            ads = Advertisements.newAd(
                ad_name=form.ads_name.data,
                ad_image=file_name,
                ad_lower_limit_age=form.ad_lower_limit_age.data,
                ad_upper_limit_age=form.ad_upper_limit_age.data,
                ad_link=form.ad_link.data,
                ad_continent=form.ad_continent.data,
                ad_gender=form.ad_gender.data,
                is_bottom_ad=form.is_bottom_ad.data,
                country=form.ad_country.data,
                language_id=form.language_id.data,
            )

            try:
                db.session.add(ads)
                db.session.commit()
                print("Advertisement added added")
                for i, question in enumerate(questionnaire_questions):
                    q = Questionnaire()
                    q.q_question = questionnaire_questions[i]
                    q.q_tags = questionnaire_questions_tags[i]
                    q.is_answer_to_write = 0 if questionnaire_answer_to_write[
                        i] is None else 1
                    q.ad_id = ads.ad_id
                    try:
                        db.session.add(q)
                        db.session.commit()
                    except Exception as e:
                        print("Questionnaire: " + e)

                flash("Ad added.", "success")
                return redirect(request.referrer)
            except Exception as e:
                print(e)
                return str(e)
                print("not added")
                flash("Error occurred", "danger")
                return redirect(request.referrer)

        else:
            print('not validate_on_submit')
            flash("Error occurred", "danger")
            ads = Advertisements.query.all()
            return render_template("ads.html", ad_form=form, ads=ads)
Esempio n. 3
0
 def update_language(self, id):
     form = UpdateLanguageForm()
     up_language = Language.query.get_or_404(id)
     country_id = up_language.country_id
     if request.method == "POST":
         if form.validate_on_submit():
             isSaved, file_name = save_file(form.lang_image.data,
                                            "language")
             up_language.language_image = file_name
             up_language.language_name = form.lang_name.data
             try:
                 db.session.commit()
                 return redirect(
                     url_for("LanguageView:language", id=country_id))
             except Exception as e:
                 return "There was an issue in updating the country" + str(
                     e)
         else:
             return render_template("update_language.html",
                                    up_language=up_language,
                                    form=form)
     else:
         form.lang_name.data = up_language.language_name
         return render_template("update_language.html",
                                up_language=up_language,
                                form=form)
Esempio n. 4
0
 def group(self, id):
     form = GroupForm()
     level = Level.query.get_or_404(id)
     groups = Groups.query.filter_by(level_id=id).all()
     if request.method == "POST":
         if form.validate_on_submit():
             isSaved, file_name = save_file(form.group_image.data, "group")
             new_group = Groups(
                 group_name=form.group_name.data,
                 group_image=file_name,
                 level_id=level.level_id,
                 language_id=level.language_id,
             )
             try:
                 db.session.add(new_group)
                 db.session.commit()
                 return redirect(url_for("GroupView:group", id=id))
             except Exception as e:
                 return "There was an issue in adding the group" + str(e)
         else:
             return render_template("group.html",
                                    form=form,
                                    level=level,
                                    groups=groups)
     else:
         return render_template("group.html",
                                form=form,
                                level=level,
                                groups=groups)
Esempio n. 5
0
 def update_word(self, id):
     up_word = Word.query.get_or_404(id)
     form = UpdateWordForm()
     form.select_language.choices = Language.getLanguagesForSelectField()
     if request.method == 'POST':
         if form.validate_on_submit():
             language_id = form.select_language.data
             up_word.lan_id = language_id
             isSaved, image_name = save_image(form.word_image.data, 'word')
             isSaved, file_name = save_file(form.audio.data, 'audio')
             if isSaved:
                 up_word.word_image = image_name
                 up_word.audio = file_name
                 up_word.word_name = form.word_name.data
                 up_word.word_mean = form.word_mean.data
             try:
                 db.session.commit()
                 return redirect(url_for('WordView:words'))
             except Exception as e:
                 return "There was an issue while updating the word" + str(
                     e)
         else:
             return render_template('update_word.html',
                                    form=form,
                                    up_word=up_word)
     else:
         return render_template('update_word.html',
                                form=form,
                                up_word=up_word)
Esempio n. 6
0
 def level(self, id):
     form = LevelForm()
     language = Language.query.get_or_404(id)
     levels = Level.query.filter_by(language_id=id).all()
     if request.method == "POST":
         if form.validate_on_submit():
             isSaved, file_name = save_file(form.level_image.data, "level")
             new_language = Level(
                 level_name=form.level_name.data,
                 level_image=file_name,
                 language_id=language.language_id,
             )
             try:
                 db.session.add(new_language)
                 db.session.commit()
                 return redirect(url_for("LevelView:level", id=id))
             except Exception as e:
                 return "There was an issue in adding the level" + str(e)
         else:
             return render_template("level.html",
                                    form=form,
                                    levels=levels,
                                    language=language)
     else:
         return render_template("level.html",
                                form=form,
                                levels=levels,
                                language=language)
Esempio n. 7
0
 def words(self):
     form = WordForm()
     form.select_language.choices = Language.getLanguagesForSelectField()
     if request.method == 'POST':
         if form.validate_on_submit():
             language_id = form.select_language.data
             isSaved, image_name = save_image(form.word_image.data, 'word')
             isSaved, file_name = save_file(form.audio.data, 'audio')
             new_word = Word(word_name=form.word_name.data,
                             word_mean=form.word_mean.data,
                             word_image=image_name,
                             audio=file_name,
                             lan_id=language_id)
             try:
                 db.session.add(new_word)
                 db.session.commit()
                 return redirect(url_for('WordView:words'))
             except Exception as e:
                 return "There was an issue in adding the word " + str(e)
         else:
             words = Word.query.all()
             return render_template('words.html', form=form, words=words)
     else:
         words = Word.query.all()
         return render_template('words.html', form=form, words=words)
Esempio n. 8
0
    def pairs_to_match(self):
        group = Groups.query.get_or_404(request.form['group_id'])
        areWordsInserted, howManyInserted, totalWords = process_lesson(
            request, group)
        sound = ""
        sentence = request.form['sentence']

        if sentence == None or sentence == "":
            print('Error: validation ')
            flash('Sentence must be entered.', 'danger')
            return redirect(request.referrer)

        if request.files['sound']:
            isSaved, file_name = save_file(request.files['sound'], 'lesson')
            if isSaved:
                sound = file_name

        new_lesson = PairsToMatch()
        new_lesson.group_id = group.group_id
        new_lesson.language_id = group.language_id
        new_lesson.sentence = sentence
        new_lesson.sounds = sound

        try:
            db.session.add(new_lesson)
            db.session.commit()
            flash('Lesson Added.', 'info')
            return redirect(request.referrer)
        except Exception as e:
            print(e)
            flash('Error occurred in creating the lesson. Please try again.',
                  'danger')
            return redirect(request.referrer)
Esempio n. 9
0
 def update_country(self, id):
     form = UpdateCountryForm()
     up_country = Countries.query.get_or_404(id)
     continent_id = up_country.continent_id
     if request.method == "POST":
         if form.validate_on_submit():
             isSaved, file_name = save_file(form.image.data, "Countries")
             up_country.country_image = file_name
             up_country.country_name = form.country_name.data
             try:
                 db.session.commit()
                 return redirect(
                     url_for("CountryView:continent", id=continent_id))
             except Exception as e:
                 return "There was an issue in updating the country" + str(
                     e)
         else:
             return render_template("update_country.html",
                                    up_country=up_country,
                                    form=form)
     else:
         form.country_name.data = up_country.country_name
         return render_template("update_country.html",
                                up_country=up_country,
                                form=form)
Esempio n. 10
0
    def sound_this_make(self):
        sound_file = ""
        group = Groups.query.get_or_404(request.form['group_id'])
        if not request.files:
            flash("Sound must be provided", 'danger')
            return redirect(request.referrer)

        sound_file = request.files['sound']
        tags = request.form['tags']
        if tags == None or tags == "":
            flash("Words separated by semicolon(;) must be provided", 'danger')
            return redirect(request.referrer)

        isSaved, file_name = save_file(sound_file, 'lesson')
        if not isSaved:
            flash("Sound not uploaded, please try again", 'danger')
            return redirect(request.referrer)

        new_lesson = InputBasedOnVoice()
        new_lesson.group_id = group.group_id
        new_lesson.language_id = group.language_id
        new_lesson.sounds = file_name
        new_lesson.options_tags = str(tags)
        try:
            db.session.add(new_lesson)
            db.session.commit()
            flash('Lesson added', 'info')
            return redirect(request.referrer)
        except Exception as e:
            print(e)
            flash('Error occurred in adding the lesson, please try again.',
                  'danger')
            return redirect(request.referrer)
Esempio n. 11
0
 def continent(self, id):
     form = CountryForm()
     continent = Continents.query.filter_by(continent_id=id).first()
     sql = text(
         "SELECT *, (select count(*) from language where language.country_id=countries.country_id) as total_languages FROM countries Left join continents on continents.continent_id = countries.continent_id"
     )
     countries = db.engine.execute(sql)
     if request.method == "POST":
         if form.validate_on_submit():
             isSaved, file_name = save_file(form.image.data, "Countries")
             new_country = Countries(
                 country_name=form.country_name.data,
                 country_image=file_name,
                 continent_id=id,
             )
             try:
                 db.session.add(new_country)
                 db.session.commit()
                 return redirect(url_for("CountryView:continent", id=id))
             except Exception as e:
                 return (
                     "Error occurred while adding the country. Please try again."
                     + str(e))
         else:
             return render_template(
                 "make_country.html",
                 form=form,
                 continent=continent,
                 countries=countries,
             )
     else:
         return render_template("make_country.html",
                                form=form,
                                continent=continent,
                                countries=countries)
Esempio n. 12
0
    def images_lesson(self):
        group = Groups.query.get_or_404(request.form['group_id'])
        areWordsInserted, howManyInserted, totalWords = process_lesson(
            request, group)

        files = request.files.getlist('image[]')
        bottom_words = request.form.getlist('bottom_word[]')
        correct_option = request.form['correct_option']
        sentence = request.form['sentence']
        sentence_type = request.form['sentence_type']

        if correct_option == None or correct_option == "" or (
                sentence == None or sentence == ""):
            print('correct option')
            flash('Correct option must be provided', 'danger')
            return redirect(request.referrer)

        images_list = list()
        words_list = list()
        if files:
            for word, file in enumerate(files):
                isUploaded, file_name = save_file(file, 'lesson')
                if not isUploaded:
                    flash(
                        'Error occurred in uploading the image, please try again.',
                        'danger')
                    print('file not uploaded')
                    return redirect(request.referrer)
                images_list.append(file_name)
                if bottom_words[word] != None:
                    words_list.append(bottom_words[word])
        else:
            flash('Error: Image must be provide.', 'danger')
            print('image must be provided')
            return redirect(request.referrer)

        new_lesson = MultipleImages()
        # new_lesson.translation =
        new_lesson.group_id = group.group_id
        new_lesson.language_id = group.language_id
        new_lesson.images = str(json.dumps(images_list))
        new_lesson.words_for_images = str(json.dumps(words_list))
        new_lesson.translation = correct_option
        new_lesson.sentence = sentence
        new_lesson.masculine_feminine_neutral = sentence_type
        print(new_lesson)
        try:
            db.session.add(new_lesson)
            db.session.commit()
            print('committed')
            flash('Lesson Created', 'info')
            return redirect(request.referrer)
        except Exception as e:
            print(e)
            flash("Error occurred in creating the lesson, please try again.",
                  "danger")
            return redirect(request.referrer)
Esempio n. 13
0
    def write_this(self):
        group = Groups.query.get_or_404(request.form['group_id'])
        areWordsInserted, howManyInserted, totalWords = process_lesson(
            request, group)
        if not request.files['sound']:
            flash("Sound must be provided", 'danger')
            return redirect(request.referrer)

        correct_sentence = request.form['correct_sentence']
        sentence = request.form['sentence']
        tags = request.form['tags']
        write_this = request.form['write_this']
        sentence_type = request.form['sentence_type']

        if correct_sentence == None or correct_sentence == "" or (
                sentence == None or sentence == "") or (tags == None
                                                        or tags == ""):
            print('Error: validation ')
            flash('All input fields are required.', 'danger')
            return redirect(request.referrer)

        isSaved, file_name = save_file(request.files['sound'], 'lesson')
        if not isSaved:
            flash('Sound not uploaded. Please try again.', 'danger')
            return redirect(request.referrer)

        new_lesson = WriteThisLesson()
        new_lesson.group_id = group.group_id
        new_lesson.language_id = group.language_id
        new_lesson.sentence = sentence
        new_lesson.options_tags = tags
        new_lesson.translation = correct_sentence
        new_lesson.sounds = file_name
        new_lesson.write_this_in_sentence = write_this
        new_lesson.language_id = group.language_id
        new_lesson.real_meaning = request.form['real_meaning']
        new_lesson.secondary_meaning = request.form['secondary_meaning']

        if 'answer_to_type' in request.form:
            new_lesson.is_type_answer = 1

        new_lesson.masculine_feminine_neutral = sentence_type

        try:
            db.session.add(new_lesson)
            db.session.commit()
            flash('Lesson Added.', 'info')
            return redirect(request.referrer)
        except Exception as e:
            print(e)
            flash('Error occurred in creating the lesson. Please try again.',
                  'danger')
            return redirect(request.referrer)
Esempio n. 14
0
    def single_image_lesson(self, id):
        form = LessonForm()
        lesson = SentenceLesson.query.get_or_404(id)
        group = Groups.query.get_or_404(lesson.group_id)
        if request.method == "GET":
            # request.form['sentence'] = "wow"
            return render_template("update_lessons/single_image_lesson.html",
                                   group=group,
                                   form=form,
                                   lesson=lesson)
        elif request.method == "POST":
            # areWordsInserted, howManyInserted, totalWords = process_lesson(request, group)
            file = request.files['image']
            correct_option = request.form['correct_sentence_word']
            sentence = request.form['sentence']
            sentence_type = request.form['sentence_type']
            if correct_option == None or correct_option == "" or (
                    sentence == None or sentence == ""):
                flash('Correct option must be provided', 'danger')
                return redirect(request.referrer)

            if file:
                isSaved, file_name = save_file(file, 'lesson')
                if not isSaved:
                    flash('Error occurred. Please try again.', 'danger')
                    return redirect(request.referrer)
                lesson.images = file_name

            lesson.translation = correct_option
            lesson.sentence = sentence
            lesson.is_type_answer = 1 if 'answer_to_type' in request.form else 0
            lesson.masculine_feminine_neutral = sentence_type
            try:
                db.session.add(lesson)
                db.session.commit()
                print('committed')
                flash('Lesson Updated', 'info')
                return redirect(request.referrer)
            except Exception as e:
                print(e)
                flash(
                    "Error occurred in updating the lesson, please try again.",
                    "danger")
                return redirect(request.referrer)
        else:
            return 'invalid request'
Esempio n. 15
0
    def update_ad(self, ad_id):
        form = AdsForm()
        ad = Advertisements.query.filter_by(ad_id=ad_id)
        if not ad.count() > 0:
            return "invalid add"

        ad = ad.first()
        if request.method == "GET":
            form.ads_name.data = ad.ad_name
            form.ad_age.data = ad.ad_age
            form.ad_gender.data = ad.ad_gender
            form.ad_continent.data = ad.ad_continent
            form.is_bottom_ad.data = True if ad.is_bottom_ad == 1 else False
            form.ad_link.data = ad.ad_link
            form.image.data = url_for("static", filename="/ads/" + ad.ad_image)
            return render_template("ad_update.html", form=form, ad=ad)
        elif request.method == "POST":
            if form.validate_on_submit():
                if not form.image.data == None:
                    isSaved, file_name = save_file(form.image.data, "ads")
                    if not isSaved:
                        return "Ad image not uploaded, please try again."
                    ad.ad_image = file_name

                ad.ad_name = form.ads_name.data
                ad.ad_age = form.ad_age.data
                ad.ad_gender = form.ad_gender.data
                ad.ad_continent = form.ad_continent.data
                ad.is_bottom_ad = 1 if form.is_bottom_ad.data == True else 0

                try:
                    db.session.add(ad)
                    db.session.commit()
                    print("added")
                    flash("Ad updated.", "success")
                    return redirect(url_for("AdsView:index"))
                except Exception as e:
                    print(e)
                    print("not added")
                    flash("Error occurred", "danger")
                    return redirect(url_for("AdsView:index"))

            else:
                return render_template("ad_update.html", form=form, ad=ad)
Esempio n. 16
0
    def tap_what_you_hear(self, id):
        form = LessonForm()
        lesson = TapWhatYouHear.query.get_or_404(id)
        group = Groups.query.get_or_404(lesson.group_id)
        if request.method == "GET":
            return render_template("update_lessons/tap_what_you_hear.html",
                                   group=group,
                                   form=form,
                                   lesson=lesson)
        elif request.method == "POST":
            correct_option = request.form['correct_option']
            tags = request.form['tags']

            if correct_option == None or correct_option == "":
                print('Error: validation ')
                flash('correct option must be entered.', 'danger')
                return redirect(request.referrer)

            if request.files['sound']:
                isSaved, file_name = save_file(request.files['sound'],
                                               'lesson')
                if not isSaved:
                    flash('Sound not uploaded. Please try again.', 'danger')
                    return redirect(request.referrer)
                lesson.sounds = file_name

            lesson.group_id = group.group_id
            lesson.language_id = group.language_id
            lesson.options_tags = tags
            lesson.translation = correct_option

            try:
                db.session.add(lesson)
                db.session.commit()
                flash('Lesson Update.', 'info')
                return redirect(request.referrer)
            except Exception as e:
                print(e)
                flash(
                    'Error occurred in updating the lesson. Please try again.',
                    'danger')
                return redirect(request.referrer)
        else:
            return 'invalid request'
Esempio n. 17
0
    def single_image_lesson(self):
        group = Groups.query.get_or_404(request.form['group_id'])
        areWordsInserted, howManyInserted, totalWords = process_lesson(
            request, group)

        file = request.files['image']
        correct_option = request.form['correct_sentence_word']
        sentence = request.form['sentence']
        sentence_type = request.form['sentence_type']
        if not file:
            flash('Select Image.', 'danger')
            return redirect(request.referrer)

        isSaved, file_name = save_file(file, 'lesson')
        if not isSaved:
            flash('Error occurred. Please try again.', 'danger')
            return redirect(request.referrer)

        if correct_option == None or correct_option == "" or (
                sentence == None or sentence == ""):
            flash('Correct option must be provided', 'danger')
            return redirect(request.referrer)

        new_lesson = SingelImage()
        # new_lesson.translation =
        new_lesson.group_id = group.group_id
        new_lesson.language_id = group.language_id
        new_lesson.images = file_name
        new_lesson.translation = correct_option
        new_lesson.sentence = sentence
        new_lesson.is_type_answer = 1 if 'answer_to_type' in request.form else 0
        new_lesson.masculine_feminine_neutral = sentence_type
        print(new_lesson)
        try:
            db.session.add(new_lesson)
            db.session.commit()
            print('committed')
            flash('Lesson Created', 'info')
            return redirect(request.referrer)
        except Exception as e:
            print(e)
            flash("Error occurred in creating the lesson, please try again.",
                  "danger")
            return redirect(request.referrer)
Esempio n. 18
0
    def pairs_to_match(self, id):
        form = LessonForm()
        lesson = PairsToMatch.query.get_or_404(id)
        group = Groups.query.get_or_404(lesson.group_id)
        if request.method == "GET":
            return render_template("update_lessons/pairs_to_match.html",
                                   group=group,
                                   form=form,
                                   lesson=lesson)
        elif request.method == "POST":
            areWordsInserted, howManyInserted, totalWords = process_lesson(
                request, group)
            sentence = request.form['sentence']
            if sentence == None or sentence == "":
                print('Error: validation ')
                flash('Sentence must be entered.', 'danger')
                return redirect(request.referrer)

            if request.files['sound']:
                isSaved, file_name = save_file(request.files['sound'],
                                               'lesson')
                if isSaved:
                    lesson.sounds = file_name

            lesson.group_id = group.group_id
            lesson.language_id = group.language_id
            lesson.sentence = sentence

            try:
                db.session.add(lesson)
                db.session.commit()
                flash('Lesson Updated.', 'info')
                return redirect(request.referrer)
            except Exception as e:
                print(e)
                flash(
                    'Error occurred in updating the lesson. Please try again.',
                    'danger')
                return redirect(request.referrer)
        else:
            return 'invalid request'
Esempio n. 19
0
 def update_group(self, id):
     form = UpdateGroupForm()
     up_group = Groups.query.get_or_404(id)
     level_id = up_group.level_id
     if request.method == "POST":
         if form.validate_on_submit():
             isSaved, file_name = save_file(form.group_image.data, "group")
             up_group.group_image = file_name
             up_group.group_name = form.group_name.data
             try:
                 db.session.commit()
                 return redirect(url_for("GroupView:group", id=level_id))
             except Exception as e:
                 return "There was an issue in updating the group" + str(e)
         else:
             return render_template("update_group.html",
                                    up_group=up_group,
                                    form=form)
     else:
         return render_template("update_group.html",
                                up_group=up_group,
                                form=form)
Esempio n. 20
0
    def tap_what_you_hear(self):
        group = Groups.query.get_or_404(request.form['group_id'])
        areWordsInserted, howManyInserted, totalWords = process_lesson(
            request, group)
        sound = ""
        correct_option = request.form['correct_option']
        tags = request.form['tags']

        if correct_option == None or correct_option == "":
            print('Error: validation ')
            flash('correct option must be entered.', 'danger')
            return redirect(request.referrer)

        if request.files['sound']:
            isSaved, file_name = save_file(request.files['sound'], 'lesson')
            if not isSaved:
                flash('Sound not uploaded. Please try again.', 'danger')
                return redirect(request.referrer)
            sound = file_name

        new_lesson = TapWhatYouHear()
        new_lesson.group_id = group.group_id
        new_lesson.language_id = group.language_id
        new_lesson.options_tags = tags
        new_lesson.translation = correct_option
        new_lesson.sounds = sound

        try:
            db.session.add(new_lesson)
            db.session.commit()
            flash('Lesson Added.', 'info')
            return redirect(request.referrer)
        except Exception as e:
            print(e)
            flash('Error occurred in creating the lesson. Please try again.',
                  'danger')
            return redirect(request.referrer)
Esempio n. 21
0
    def images_lesson(self, id):
        form = LessonForm()
        lesson = TapWhatYouHear.query.get_or_404(id)
        group = Groups.query.get_or_404(lesson.group_id)
        images = json.loads(lesson.images)
        images_words = json.loads(lesson.words_for_images)
        print(images_words)

        if request.method == "GET":
            return render_template("update_lessons/four_images_lesson.html",
                                   group=group,
                                   form=form,
                                   lesson=lesson,
                                   images=images,
                                   words=images_words)
        elif request.method == "POST":
            areWordsInserted, howManyInserted, totalWords = process_lesson(
                request, group)

            files = request.files.getlist('image[]')
            bottom_words = request.form.getlist('bottom_word[]')
            correct_option = request.form['correct_option']
            sentence = request.form['sentence']
            sentence_type = request.form['sentence_type']

            if correct_option == None or correct_option == "" or (
                    sentence == None or sentence == ""):
                print('correct option')
                flash('Correct option must be provided', 'danger')
                return redirect(request.referrer)

            images_list = list()
            words_list = list()
            print(len(files))
            if files:
                for file in files:
                    if file:
                        isUploaded, file_name = save_file(file, 'lesson')
                        if not isUploaded:
                            flash(
                                'Error occurred in uploading the image, please try again.',
                                'danger')
                            print('file not uploaded')
                            return redirect(request.referrer)
                        images_list.append(file_name)
                lesson.images = str(json.dumps(images_list))

            if bottom_words:
                for word in bottom_words:
                    words_list.append(word)
                lesson.words_for_images = str(json.dumps(words_list))

            lesson.translation = correct_option
            lesson.sentence = sentence
            lesson.masculine_feminine_neutral = sentence_type
            try:
                db.session.add(lesson)
                db.session.commit()
                print('committed')
                flash('Lesson Update', 'info')
                return redirect(request.referrer)
            except Exception as e:
                print(e)
                flash(
                    "Error occurred in updating the lesson, please try again.",
                    "danger")
                return redirect(request.referrer)
        else:
            return 'invalid request'
Esempio n. 22
0
    def write_this(self, id):
        form = LessonForm()
        lesson = WriteThisLesson.query.get_or_404(id)
        group = Groups.query.get_or_404(lesson.group_id)
        if request.method == "GET":
            # request.form['sentence'] = "wow"
            return render_template("update_lessons/write_this.html",
                                   group=group,
                                   form=form,
                                   lesson=lesson)
        elif request.method == "POST":
            group = Groups.query.get_or_404(request.form['group_id'])
            areWordsInserted, howManyInserted, totalWords = process_lesson(
                request, group)
            correct_sentence = request.form['correct_sentence']
            sentence = request.form['sentence']
            tags = request.form['tags']
            write_this = request.form['write_this']
            sentence_type = request.form['sentence_type']

            if correct_sentence == None or correct_sentence == "" or (
                    sentence == None or sentence == "") or (tags == None
                                                            or tags == ""):
                print('Error: validation ')
                flash('All input fields are required.', 'danger')
                return redirect(request.referrer)

            if request.files['sound']:
                isSaved, file_name = save_file(request.files['sound'],
                                               'lesson')
                if not isSaved:
                    flash('Sound not uploaded. Please try again.', 'danger')
                    return redirect(request.referrer)
                lesson.sounds = file_name

            lesson.group_id = group.group_id
            lesson.language_id = group.language_id
            lesson.sentence = sentence
            lesson.options_tags = tags
            lesson.translation = correct_sentence
            lesson.write_this_in_sentence = write_this
            lesson.language_id = group.language_id
            lesson.real_meaning = request.form['real_meaning']
            lesson.secondary_meaning = request.form['secondary_meaning']

            if 'answer_to_type' in request.form:
                lesson.is_type_answer = 1

            lesson.masculine_feminine_neutral = sentence_type

            try:
                db.session.add(lesson)
                db.session.commit()
                flash('Lesson Update.', 'info')
                return redirect(request.referrer)
            except Exception as e:
                print(e)
                flash(
                    'Error occurred in updating the lesson. Please try again.',
                    'danger')
                return redirect(request.referrer)
        else:
            return 'invalid request'