def items(): error = None if request.method == 'POST': error = None if not request.form['name']: error = 'You have to enter a item name' elif not request.form['rfidNum']: error = 'You have to enter the RFID number' else: db.session.add( Item(name=request.form['name'], tagID=request.form['rfidNum'], userID=session['user_id'], status=0)) db.session.commit() items = Item.query.filter_by( userID=session['user_id'], name=request.form['name'], tagID=request.form['rfidNum']).first() db.session.add( Pattern(userID=session['user_id'], itemID=items.id, dayOfWeek='Monday', startTime=','.join(defaultPatternTime), presentItems=','.join(defaultPatternPresent))) db.session.add( Pattern(userID=session['user_id'], itemID=items.id, dayOfWeek='Tuesday', startTime=','.join(defaultPatternTime), presentItems=','.join(defaultPatternPresent))) db.session.add( Pattern(userID=session['user_id'], itemID=items.id, dayOfWeek='Wednesday', startTime=','.join(defaultPatternTime), presentItems=','.join(defaultPatternPresent))) db.session.add( Pattern(userID=session['user_id'], itemID=items.id, dayOfWeek='Thursday', startTime=','.join(defaultPatternTime), presentItems=','.join(defaultPatternPresent))) db.session.add( Pattern(userID=session['user_id'], itemID=items.id, dayOfWeek='Friday', startTime=','.join(defaultPatternTime), presentItems=','.join(defaultPatternPresent))) db.session.commit() items2 = Pattern.query.filter_by(userID=session['user_id'], itemID=items.id).all() for item in items2: print(item.startTime) flash('You were successfully added an item') items = Item.query.filter_by(userID=session['user_id']).all() return render_template("items.html", user=g.user, error=error, items=items)
def save_new_pattern(user_id, pattern_text, pattern_name, svg_string): """ Saves pattern SVG and adds pattern to DB""" pattern = Pattern(user_id=user_id, pattern_text=pattern_text, pattern_name=pattern_name) db.session.add(pattern) db.session.commit() save_file = open((f'static/patternSVGs/{pattern.pattern_id}.svg'), 'w') save_file.write(svg_string) save_file.close() pattern.pattern_url = (f'/static/patternSVGs/{pattern.pattern_id}.svg') db.session.commit() return pattern
def create_pattern_dict(self, pattern): """ Returns pattern dictionary by using data from pattern object provided. """ pattern_dict = Pattern.as_dict(pattern) return pattern_dict
def test_get_newest(self): """ create a new pattern, that pattern should be newest""" user = User.query.filter(User.email == 'potato@potato').one() pattern_new = Pattern(pattern_name='new', user_id=user.user_id, pattern_text='new') db.session.add(pattern_new) db.session.commit() self.assertEqual(shf.get_newest()[0][1],'new')
def add_stock(stock_type, image): """Add either fabric or patttern stock to the database.""" if stock_type == 'fabric': stock = Fabric(image_id=image.image_id, name="fabric", created_at='now') else: stock = Pattern(image_id=image.image_id, name="pattern", created_at='now') db.session.add(stock) db.session.commit() return stock
def add_poll_pattern(name, link, pdf, group_id): """Add a individual poll pattern if a poll was created""" pattern_name = request.form.get(name) pattern_link = request.form.get(link) if pdf in request.files and request.files[pdf].filename: pdf_filename = manuals.save(request.files[pdf]) pattern_pdf = str(manuals.path(pdf_filename)) else: pattern_pdf = None pattern = Pattern(pattern_name=pattern_name, pattern_link=pattern_link, pattern_pdf=pattern_pdf, chosen=False, group_id=group_id)
def add_chosen_pattern(name, link, pdf, group_id): """Add a group pattern if only one was chosen""" pattern_name = request.form.get(name) pattern_link = request.form.get(link) if pdf in request.files and request.files[pdf].filename: pdf_filename = manuals.save(request.files[pdf]) pattern_pdf = str(manuals.path(pdf_filename)) else: pattern_pdf = None pattern = Pattern(pattern_name=pattern_name, pattern_link=pattern_link, pattern_pdf=pattern_pdf, chosen=True, group_id=group_id)
def load_patterns(): """Load patterns from patterns.txt into database.""" print "Patterns" Pattern.query.delete() for row in open("seed_data/patterns.txt"): row = row.rstrip() pattern_id, pattern_name, pattern_link, pattern_pdf, chosen, group_id = row.split( "|") pattern = Pattern(pattern_id=pattern_id, pattern_name=pattern_name, pattern_link=pattern_link, pattern_pdf=pattern_pdf, chosen=chosen, group_id=group_id) db.session.add(pattern) db.session.commit()
def get_patterns_from_projects(start_index, end_index): """ Using Projects, create Pattern objects. Use Ravelry API to retrieve patterns with pattern_name from Project. Compare retrieved pattern pattern_ids to pattern_id in Project, and create Pattern object for matches.""" patterns_to_find = db.session.query(Project.project_rav_pattern_id).all() # remove duplicates by transforming list into set, then back patterns_to_find = set(patterns_to_find) patterns_to_find = list(patterns_to_find) # 41468 (from 251081 in initial list) base_url = "https://api.ravelry.com/patterns/" append_extension = ".json" for i in range(start_index, end_index + 1): project_rav_pattern_id = patterns_to_find[i][0] search_string = base_url + str( project_rav_pattern_id) + append_extension # submit search through get request to Ravelry API json_pattern = requests.get(search_string) # convert json to python dictionary dict_project_pattern = json_pattern.json() current_pattern = dict_project_pattern["pattern"] # save information from dictionary, if any is missing, don't add # this pattern to database try: pattern_photo = current_pattern["photos"][0]["small_url"] req_yardage = current_pattern["yardage_max"] if req_yardage == None: req_yardage = current_pattern["yardage"] if req_yardage == None: continue try: pattern_yarn_weight = current_pattern["yarn_weight"]["name"] except KeyError: if current_pattern["packs"][0]["yarn_weight"] == None: continue else: pattern_yarn_weight = current_pattern["packs"][0][ "yarn_weight"]["name"] pattern_name = current_pattern["name"] pattern_permalink = current_pattern["permalink"] pattern_categories = current_pattern["pattern_categories"] except (KeyError, IndexError): continue # build variables from json data to create object pattern_yarn_weight = pattern_yarn_weight.lower() if pattern_yarn_weight not in (ALL_PREFERENCES.weight): continue rav_pattern_link = ("http://www.ravelry.com/patterns/library/" + pattern_permalink) try: for category in pattern_categories: if category["permalink"] in (ALL_PREFERENCES.pc): pattern_category = category["permalink"] elif (category["parent"]["permalink"] == "socks"): pattern_category = "socks" else: continue except KeyError: continue # create new Pattern object and save it to db new_pattern = Pattern(rav_pattern_id=project_rav_pattern_id, pattern_photo=pattern_photo, req_yardage=req_yardage, pattern_yarn_weight=pattern_yarn_weight, pattern_name=pattern_name, pattern_category=pattern_category, rav_pattern_link=rav_pattern_link) db.session.add(new_pattern) print i db.session.commit()
def create_pattern(self, pattern_values): """ Returns pattern object of specified type by using data from dictionary provided. """ return Pattern(pattern_values)
def create_example_data(): """ create sample data for testing. :return: created data in database """ # In case this is run more than once, empty out existing data BasketYarn.query.delete() Project.query.delete() Pattern.query.delete() UserPreference.query.delete() Basket.query.delete() Preference.query.delete() Yarn.query.delete() User.query.delete() GroupEvent.query.delete() # Add users u1 = User(username="******", years_knitting=6, miles_knit=23) u2 = User(username="******", years_knitting=2) u3 = User(username="******") # flush users since Basket is dependent db.session.add_all([u1, u2, u3]) db.session.flush() b1 = Basket(user_id=1) b2 = Basket(user_id=2) b3 = Basket(user_id=3) y1 = Yarn(rav_yarn_id=1, yarn_name="y1", yarn_company="y1_company", yarn_weight="y1_weight", ball_yardage=100, yarn_photo="y1_photo", yarn_permalink="y1_permalink") y2 = Yarn(rav_yarn_id=2, yarn_name="y2", yarn_company="y2_company", yarn_weight="y2_weight", ball_yardage=200, yarn_photo="y2_photo", yarn_permalink="y2_permalink") y3 = Yarn(rav_yarn_id=3, yarn_name="y3", yarn_company="y3_company", yarn_weight="y3_weight", ball_yardage=300, yarn_photo="y3_photo", yarn_permalink="y3_permalink") # flush baskets and yarns since BasketYarn is dependent db.session.add_all([b1, b2, b3, y1, y2, y3]) db.session.flush() by1 = BasketYarn(basket_id=1, yarn_id=1, yards=1000, colorway="by1_color") by2 = BasketYarn(basket_id=1, yarn_id=2, yards=1000, colorway="by2_color") # by3 omitted so BY with basket_id=1 and yarn_id=3 can be created in test by4 = BasketYarn(basket_id=2, yarn_id=1, yards=1000, colorway="by4_color") by5 = BasketYarn(basket_id=2, yarn_id=2, yards=1000, colorway="by5_color") by6 = BasketYarn(basket_id=2, yarn_id=3, yards=1000, colorway="by6_color") by7 = BasketYarn(basket_id=3, yarn_id=1, yards=1000, colorway="by7_color") by8 = BasketYarn(basket_id=3, yarn_id=2, yards=1000, colorway="by8_color") by9 = BasketYarn(basket_id=3, yarn_id=3, yards=1000, colorway="by9_color") # add projects and patterns pr1 = Project(project_yarn_id=1, project_rav_pattern_id=1, project_pattern_name="pr1_name", project_yarn_permalink="pr1_permalink") pr2 = Project(project_yarn_id=1, project_rav_pattern_id=2, project_pattern_name="pr1_name", project_yarn_permalink="pr2_permalink") pr3 = Project(project_yarn_id=1, project_rav_pattern_id=3, project_pattern_name="pr3_name", project_yarn_permalink="pr3_permalink") pr4 = Project(project_yarn_id=1, project_rav_pattern_id=4, project_pattern_name="pr4_name", project_yarn_permalink="pr5_permalink") pr5 = Project(project_yarn_id=1, project_rav_pattern_id=5, project_pattern_name="pr5_name", project_yarn_permalink="pr5_permalink") pr6 = Project(project_yarn_id=2, project_rav_pattern_id=3, project_pattern_name="pr6_name", project_yarn_permalink="pr6_permalink") pr7 = Project(project_yarn_id=2, project_rav_pattern_id=4, project_pattern_name="pr7_name", project_yarn_permalink="pr7_permalink") pr8 = Project(project_yarn_id=2, project_rav_pattern_id=5, project_pattern_name="pr8_name", project_yarn_permalink="pr8_permalink") pr9 = Project(project_yarn_id=2, project_rav_pattern_id=6, project_pattern_name="pr9_name", project_yarn_permalink="pr9_permalink") pr10 = Project(project_yarn_id=2, project_rav_pattern_id=7, project_pattern_name="pr10_name", project_yarn_permalink="pr10_permalink") pr11 = Project(project_yarn_id=3, project_rav_pattern_id=5, project_pattern_name="pr11_name", project_yarn_permalink="pr11_permalink") pr12 = Project(project_yarn_id=3, project_rav_pattern_id=6, project_pattern_name="pr12_name", project_yarn_permalink="pr12_permalink") pr13 = Project(project_yarn_id=3, project_rav_pattern_id=7, project_pattern_name="pr13_name", project_yarn_permalink="pr13_permalink") pr14 = Project(project_yarn_id=3, project_rav_pattern_id=8, project_pattern_name="pr14_name", project_yarn_permalink="pr14_permalink") pr15 = Project(project_yarn_id=3, project_rav_pattern_id=9, project_pattern_name="pr15_name", project_yarn_permalink="pr15_permalink") pa1 = Pattern(rav_pattern_id=1, pattern_photo="pa1_photo", req_yardage=100, pattern_yarn_weight="y1_weight", pattern_name="pa1_name", pattern_category="cardigan", rav_pattern_link="pa1_link") pa2 = Pattern(rav_pattern_id=2, pattern_photo="pa2_photo", req_yardage=200, pattern_yarn_weight="y2_weight", pattern_name="pa2_name", pattern_category="pullover", rav_pattern_link="pa2_link") pa3 = Pattern(rav_pattern_id=3, pattern_photo="pa3_photo", req_yardage=300, pattern_yarn_weight="y3_weight", pattern_name="pa3_name", pattern_category="socks", rav_pattern_link="pa3_link") pa4 = Pattern(rav_pattern_id=4, pattern_photo="pa4_photo", req_yardage=400, pattern_yarn_weight="y4_weight", pattern_name="pa4_name", pattern_category="mittens", rav_pattern_link="pa4_link") pa5 = Pattern(rav_pattern_id=5, pattern_photo="pa5_photo", req_yardage=500, pattern_yarn_weight="y5_weight", pattern_name="pa5_name", pattern_category="gloves", rav_pattern_link="pa5_link") pa6 = Pattern(rav_pattern_id=6, pattern_photo="pa6_photo", req_yardage=600, pattern_yarn_weight="y6_weight", pattern_name="pa6_name", pattern_category="beanie-toque", rav_pattern_link="pa6_link") pa7 = Pattern(rav_pattern_id=7, pattern_photo="pa7_photo", req_yardage=700, pattern_yarn_weight="y7_weight", pattern_name="pa7_name", pattern_category="cowl", rav_pattern_link="pa7_link") pa8 = Pattern(rav_pattern_id=8, pattern_photo="pa8_photo", req_yardage=800, pattern_yarn_weight="y8_weight", pattern_name="pa8_name", pattern_category="scarf", rav_pattern_link="pa8_link") pa9 = Pattern(rav_pattern_id=9, pattern_photo="pa9_photo", req_yardage=900, pattern_yarn_weight="y9_weight", pattern_name="pa9_name", pattern_category="shawl-wrap", rav_pattern_link="pa9_link") db.session.add_all([by1, by2, by4, by5, by6, by7, by8, by9,]) db.session.add_all([pr1, pr2, pr3, pr4, pr5, pr6, pr7, pr8, pr9, pr10, pr11, pr12, pr13, pr14, pr15]) db.session.add_all([pa1, pa2, pa3, pa4, pa5, pa6, pa7, pa8, pa9]) db.session.commit()