Beispiel #1
0
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)
Beispiel #2
0
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')
Beispiel #5
0
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()
Beispiel #9
0
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)
Beispiel #11
0
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()