Beispiel #1
0
def create_store():
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag = request.form['tag']
        query = json.loads(request.form['query'])
        store = Store(name, url_prefix, tag, query)
        store.save_to_mongo()
        return redirect(url_for("stores.index"))
    return render_template("stores/create_store.jinja2")
Beispiel #2
0
def create_store():
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(request.form['query'])

        store = Store(name, url_prefix, tag_name, query)
        store.save_to_mongo()
        flash("Store {} successfully added.".format(name))
        return redirect(url_for('.index'))

    return render_template('/stores/create_store.html')
Beispiel #3
0
def create_store():
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = request.form['query']
        review = request.form['review']

        Store(name, url_prefix, tag_name, query, review).save_to_db()
        return render_template('stores/store_index.jinja2', stores=Store.all())

    # What happens if it's a GET request
    return render_template("stores/new_store.jinja2")
Beispiel #4
0
def create_store():
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(request.form['query'])

        store = Store(name, url_prefix, tag_name, query)
        store.save_to_db()

        return redirect(url_for('stores.index'))

    return render_template('stores/create_store.html')
Beispiel #5
0
def edit_store(store_id):
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(request.form['query'])

        store = Store(name, url_prefix, tag_name, query, store_id)
        store.update_db(store_id)

        return redirect(url_for('stores.index'))

    store = Store.find_by_id(store_id)
    return render_template('stores/edit_store.html', store=store)
Beispiel #6
0
def create_store():
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(request.form['query'])
        #  json.loads converts JSON string to Python dictionary

        store = Store(name, url_prefix, tag_name, query)
        store.save_to_db()
        return redirect(url_for('stores.index'))
    else:
        #  it's a GET not a POST
        return render_template(base_model + '/' + 'create_store.html')
Beispiel #7
0
def edit_store(store_id):
    if request.method == 'POST':
        store = Store.get_by_id(store_id)
        store.name = request.form['name']
        store.url_prefix = request.form['url_prefix']
        store.tag_name = request.form['tag_name']
        store.query = json.loads(request.form['query'])

        store.save_to_mongo()

        flash("Store {} successfully updated.".format(store_id))
        return redirect(url_for('.index'))

    return render_template('/stores/edit_store.html',
                           store=Store.get_by_id(store_id))
Beispiel #8
0
def edit_store(store_id):
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(request.form['query'])
        store = Store.get_by_id(store_id)
        store.name = name
        store.url_prefix = url_prefix
        store.tag_name = tag_name
        store.query = query
        store.save_to_mongo()
        return redirect(url_for('.index'))

    return render_template("stores/edit_store.html", store=Store.get_by_id(store_id))
Beispiel #9
0
    def __init__(self, url, name=None, price=None, _id=None):

        self.url = url
        store = Store.find_by_url(url)  # store where the item lives

        # price won't be a passing parameter anymore, it will be a query
        # we access python properties instead having to raise methods
        self.tag_name = store.tag_name

        # e.g. Item("Wool Blend Peacoat",
        # "http://www.johnlewis.com/kin-by-john-lewis-wool-blend-peacoat-navy/p3033177",
        # Store("John Lewis",
        #       "http://www.johnlewis.com/",
        #       "span",
        #       {"itemprop":"price","class":"now-price"}))
        self.pricequery = store.pricequery

        # the query result, a string price, will be stored to self.price
        # initially it will be None, subsequently it will download price from database
        self.price = None if price is None else price

        # when an Item is created, it won't automatically load price or name
        # one need to call the method to web scrape price and name

        # e.g. Item("Wool Blend Peacoat",
        # "http://www.johnlewis.com/kin-by-john-lewis-wool-blend-peacoat-navy/p3033177",
        # Store("John Lewis",
        #       "http://www.johnlewis.com/",
        #       "span",
        #       {"itemprop":"name"}))
        self.namequery = store.namequery
        # the query result, a string price, will be stored to self.price
        self.name = self.load_name() if name is None else name

        self._id = uuid.uuid4().hex if _id is None else _id
Beispiel #10
0
def create():
    if request.method=='POST':
        name=request.form['name']
        url=request.form['url']
        tag=request.form['tag']
        query=request.form['query']
        query=query.replace("'", '"')
        query=json.loads(query)
        headers=request.form['headers']
        headers=headers.replace("'", '"')
        headers=json.loads(headers)
        store=Store(name, url, tag, query, header=headers)
        store.save_to_mongo()
        return redirect(url_for('.stores'))

    return render_template('stores/new.jinja2')
Beispiel #11
0
 def __init__(self, name, url, price=None, _id=None):
     self.name = name
     self.url = url
     store = Store.find_by_url(url)
     self.tag_name = store.tag_name
     self.query = store.query
     self.price = None if price is None else price
     self._id = uuid.uuid4().hex if _id is None else _id
Beispiel #12
0
 def __init__(self, name, url, _id=None):
     self.name = name
     self.url = url
     store = Store.find_by_url(url)
     tag_name = store.tag_name
     query = store.query
     self.price = self.load_price(tag_name, query)
     self._id = uuid.uuid4().hex if _id is None else _id
Beispiel #13
0
 def __init__(self, name, url, _id=uuid4().hex):
     self._id = _id
     self.name = name
     self.url = url
     store = Store.get_by_url(url)
     self.tag_name = store.tag_name
     self.query = store.query
     self.price = None
Beispiel #14
0
 def __init__(self, name, url, price= None,_id=None):
     self.name = name
     self.url = url
     store = Store.find_by_url(url)
     self.tag_name = store.tag_name
     self.query = store.query
     self.price = None if price is None else price
     self._id = uuid.uuid4().hex if _id is None else _id
Beispiel #15
0
def edit_store(store_name):
    if request.method == 'POST':
        tag_name = request.form['tag_name']
        query = request.form['query']
        review = request.form['review']

        store = Store.get_by_name(store_name)

        store.tag_name = tag_name
        store.query = query
        store.review = review

        store.save_to_db()

        return redirect(url_for('.index'))

    return render_template("stores/edit_store.jinja2", store=Store.get_by_name(store_name))
Beispiel #16
0
 def __init__(self, url, name, category, price=None):
     self.url = url
     self.name = name
     self.category = category
     self.price = None if price is None else price
     store = Store.find_by_url(url)
     self.tag_name = store.tag_name
     self.query = store.query
Beispiel #17
0
 def __init__(self, name, url, price=None, _id=None):
     self._id = uuid.uuid4().hex if _id is None else _id
     self.name = name
     self.url = url
     store = Store.get_by_url(url)
     self.tag_name = store.get_tag_name()
     self.query = store.get_query()
     self.price = price
Beispiel #18
0
 def __init__(self, name, url, price=None, img_src=None, _id=None):
     self.name = name
     self.url = url
     store = Store.find_by_url(url)
     self.price_tag = store.price_tag
     self.price_query = store.price_query
     self.price = None if price is None else price
     self.img_src = self.get_img_src(store.img_query, store.img_src_tag) if img_src is None else img_src
     self._id = uuid.uuid4().hex if _id is None else _id
Beispiel #19
0
 def __init__(self, name, url, price=None, _id=None):
     self.name = name
     self.url = url
     corresponding_store = Store.find_store_by_url(url)
     self.tag_name = corresponding_store.tag_name
     self.query = corresponding_store.query
     #self.price = self.load_item(tag_name, query)
     self.price = None if price is None else price
     self._id = uuid.uuid4().hex if _id is None else _id
Beispiel #20
0
 def __init__(self, name, url, price=None,_id=None):
     self.name = name
     self.url = url
     store = Store.find_by_url(url)
     self.tag_name = store.tag_name
     self.query = store.query
     self.price = None if price is None else price   # self.load_price(tag_name, query)
     self._id = uuid.uuid4().hex if _id is None else _id
     print "INIT item" + "price:" + str(self.price)
Beispiel #21
0
 def __init__(self, name, url, store_id, price=None, _id=None):
     self.name = name
     self.url = url
     self.store_id = store_id
     store = Store.get_by_id(store_id)
     self.tag_name = store.tag_name
     self.query = store.query
     self.price = None if price is None else price
     self._id = uuid.uuid4().hex if _id is None else _id
Beispiel #22
0
def create_store():
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(request.form['query'])
        Store(name, url_prefix, tag_name, query).save_to_mongo()
        return redirect(url_for('.index'))
    return render_template('stores/new_store.jinja2')
Beispiel #23
0
 def __init__(self, name, url, price=None, _id=None):
     self.name = name
     self.url = url
     store = Store.find_store_from_url(url)
     self.tag_name = store.tag_name
     # is the html expression from inspect element in soup.find()
     self.query = store.query
     # self.price = self.load_price(tag_name, query) # not necessary
     self.price = None if price is None else price
     self._id = uuid.uuid4().hex if _id is None else _id
def create_store():

    # in case we receive GET - this is the first time the page is opened
    # in case we receive  POST - we have the details
    if request.method == 'GET':
        return render_template('stores/create_store.html')
    else:
        # get from the request the newly created alert details
        name = request.form['name']
        url_prefix = request.form['url']
        tag_name = request.form['tag_name']
        # need to format the query as json
        query = json.load(request.form['query'])

        store = Store(name, url_prefix, tag_name, query)

        store.save_to_mongo()

        return redirect(url_for('stores.index'))
Beispiel #25
0
def create_store():
    if request.method == "POST":
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(request.form['query'].replace("'", '"'))
        Store(name, url_prefix, tag_name, query).save_to_mongo()
        return redirect(url_for('.index'))

    return render_template("stores/create_store.html")
 def __init__(self, name, url, price=None, _id=None):
     self.name = name
     store = Store.find_by_url(url)
     self.url = url
     # store hold the name of the element that represent price
     self.tag_name = store.tag_name
     # store will hold the specific query with attributes that match the tag
     self.query = store.query
     self.price = None if price is None else price
     self._id = uuid.uuid4().hex if _id is None else _id
Beispiel #27
0
def edit_store(store_id):
    store = Store.get_by_id(uuid.UUID(store_id))
    if request.method == 'POST':
        store.name = request.form['name']
        store.url_prefix = request.form['url_prefix']
        store.tag_name = request.form['tag_name']
        store.query = json.loads(request.form['query'])
        store.save_to_mongo()
        return redirect(url_for('.index'))
    return render_template('stores/edit_store.jinja2', store=store)
Beispiel #28
0
def create_store():
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(request.form['query'])

        Store(name, url_prefix, tag_name, query).save_to_mongo()

    return render_template("stores/new_store.html")
Beispiel #29
0
def edit_store(store_id):
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(request.form['query'])

        store = Store.get_by_id(store_id)

        store.name = name
        store.url_prefix = url_prefix
        store.tag_name = tag_name
        store.query = query

        store.save_to_mongo()

        return redirect(url_for('.index'))

    # What happens if it's a GET request
    return render_template("stores/edit_store.jinja2", store=Store.get_by_id(store_id))
Beispiel #30
0
 def __init__(self, url, name=None, price=None, _id=None):
     self.url = url
     store = Store.get_by_full_url(url)
     n_tag_name = store.n_tag_name
     n_query = store.n_query
     self.name = self.load_name(n_tag_name,
                                n_query) if name is None else name
     self.p_tag_name = store.p_tag_name
     self.p_query = store.p_query
     self.price = None if price is None else price
     self._id = uuid.uuid4().hex if _id is None else _id
Beispiel #31
0
def create_store():
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(
            request.form['query']
        )  # convert string representation of query to dictionary
        Store(name, url_prefix, tag_name, query).save_to_mongo()
        return redirect(url_for('.index'))
    return render_template('stores/create_store.jinja2')
Beispiel #32
0
def create_store():
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(request.form['query'])

        Store(name, url_prefix, tag_name, query).save_to_mongo()

    # What happens if it's a GET request
    return render_template("stores/new_store.jinja2")
Beispiel #33
0
def edit_store(store_id):
    store = Store.get_by_id(store_id)
    if request.method == 'POST':
        name = request.form['name']
        url_prefix = request.form['url_prefix']
        tag_name = request.form['tag_name']
        query = json.loads(request.form['query'])

        store.name=name
        store.url_prefix=url_prefix
        store.tag_name=tag_name
        store.query=query
        store.save_to_mongo()

        return redirect(url_for('.index'))
    return render_template('stores/edit_store.html',store=store)
Beispiel #34
0
def index():
    stores = Store.all()
    return render_template('stores/store_index.jinja2', stores=stores)
Beispiel #35
0
def store_page(store_id):
    return render_template('stores/store.jinja2', store=Store.get_by_id(store_id))
Beispiel #36
0
def store_page(store_id):
    store = Store.get_by_id(store_id)
    return render_template('stores/store.html', store=store)
Beispiel #37
0
def delete_store(store_id):
    Store.get_by_id(store_id).delete()
    return redirect(url_for('.index'))
Beispiel #38
0
def delete_store(store_id):
    Store.get_by_id(store_id).delete()
Beispiel #39
0
def index():
    stores = Store.all()
    return render_template('/stores/store_index.html', stores=stores)