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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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'
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)
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'
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)
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'
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)
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)
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'
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'