comparison farol/producttree.py @ 22:dbfe89e3c6fe

Fix producttree urls
author Benoît Allard <benoit.allard@greenbone.net>
date Thu, 02 Oct 2014 11:23:49 +0200
parents 4a9f23230eba
children 7c4d001839e7
comparison
equal deleted inserted replaced
21:e66fd84439bd 22:dbfe89e3c6fe
39 def producttree_required(f): 39 def producttree_required(f):
40 @wraps(f) 40 @wraps(f)
41 def decorated_function(*args, **kwargs): 41 def decorated_function(*args, **kwargs):
42 if get_current()._producttree is None: 42 if get_current()._producttree is None:
43 flash('Operation invalid without producttree', 'warning') 43 flash('Operation invalid without producttree', 'warning')
44 return redirect(url_for('document')) 44 return redirect(url_for('document.view'))
45 return f(*args, **kwargs) 45 return f(*args, **kwargs)
46 return decorated_function 46 return decorated_function
47 47
48 @producttree.route('/create', methods=['POST']) 48 @producttree.route('/create', methods=['POST'])
49 @document_required 49 @document_required
50 def create(): 50 def create():
51 get_current().createProductTree() 51 get_current().createProductTree()
52 return redirect(url_for('document')) 52 return redirect(url_for('document.view'))
53 53
54 54
55 @producttree.route('/branch/<path:path>/edit', methods=['GET', 'POST']) 55 @producttree.route('/branch/<path:path>/edit', methods=['GET', 'POST'])
56 @document_required 56 @document_required
57 @producttree_required 57 @producttree_required
80 # 3. add to the Tree (again) 80 # 3. add to the Tree (again)
81 ptree.addBranch(branch) 81 ptree.addBranch(branch)
82 82
83 branch._type = request.form['type'] 83 branch._type = request.form['type']
84 branch._name = request.form['name'] 84 branch._name = request.form['name']
85 return redirect(url_for('document')) 85 return redirect(url_for('document.view'))
86 86
87 @producttree.route('/branch/add', methods=['GET', 'POST']) 87 @producttree.route('/branch/add', methods=['GET', 'POST'])
88 @document_required 88 @document_required
89 @producttree_required 89 @producttree_required
90 def add_branch(): 90 def add_branch():
97 pbranch = ptree 97 pbranch = ptree
98 if request.form['parent']: 98 if request.form['parent']:
99 pbranch = ptree.getBranch([int(p) for p in request.form['parent'].split('/')]) 99 pbranch = ptree.getBranch([int(p) for p in request.form['parent'].split('/')])
100 branch = CVRFProductBranch(request.form['type'], request.form['name'], pbranch) 100 branch = CVRFProductBranch(request.form['type'], request.form['name'], pbranch)
101 ptree.addBranch(branch) 101 ptree.addBranch(branch)
102 return redirect(url_for('document')) 102 return redirect(url_for('document.view'))
103 103
104 @producttree.route('/product/<productid>') 104 @producttree.route('/product/<productid>')
105 @document_required 105 @document_required
106 @producttree_required 106 @producttree_required
107 def view_product(productid): 107 def view_product(productid):
156 ptree.addProduct(product) 156 ptree.addProduct(product)
157 157
158 product._productid = request.form['productid'] 158 product._productid = request.form['productid']
159 product._name = request.form['name'] 159 product._name = request.form['name']
160 product._cpe = request.form['cpe'] or None 160 product._cpe = request.form['cpe'] or None
161 return redirect(url_for('document')) 161 return redirect(url_for('document.view'))
162 162
163 @producttree.route('/product/add', methods=['GET', 'POST']) 163 @producttree.route('/product/add', methods=['GET', 'POST'])
164 @document_required 164 @document_required
165 @producttree_required 165 @producttree_required
166 def add_product(): 166 def add_product():
183 elif request.form['parent_relationship']: 183 elif request.form['parent_relationship']:
184 parent = ptree._relationships[int(request.form['parent_relationship'])] 184 parent = ptree._relationships[int(request.form['parent_relationship'])]
185 185
186 product = CVRFFullProductName(request.form['productid'], request.form['name'], parent, request.form['cpe'] or None) 186 product = CVRFFullProductName(request.form['productid'], request.form['name'], parent, request.form['cpe'] or None)
187 ptree.addProduct(product) 187 ptree.addProduct(product)
188 return redirect(url_for('document')) 188 return redirect(url_for('document.view'))
189 189
190 @producttree.route('/relationship/<int:index>/edit', methods=['GET', 'POST']) 190 @producttree.route('/relationship/<int:index>/edit', methods=['GET', 'POST'])
191 @document_required 191 @document_required
192 @producttree_required 192 @producttree_required
193 def edit_relationship(index): 193 def edit_relationship(index):
202 return render_template('producttree/edit_relationship.j2', productreference=rel._productreference, relationtype=rel._relationtype, relatestoproductreference=rel._relatestoproductreference, types=rel.TYPES) 202 return render_template('producttree/edit_relationship.j2', productreference=rel._productreference, relationtype=rel._relationtype, relatestoproductreference=rel._relatestoproductreference, types=rel.TYPES)
203 203
204 rel._productreference = request.form['productreference'] 204 rel._productreference = request.form['productreference']
205 rel._relationtype = request.form['relationtype'] 205 rel._relationtype = request.form['relationtype']
206 rel._relatestoproductreference = request.form['relatestoproductreference'] 206 rel._relatestoproductreference = request.form['relatestoproductreference']
207 return redirect(url_for('document')) 207 return redirect(url_for('document.view'))
208 208
209 @producttree.route('/relationship/add', methods=['GET', 'POST']) 209 @producttree.route('/relationship/add', methods=['GET', 'POST'])
210 @document_required 210 @document_required
211 @producttree_required 211 @producttree_required
212 def add_relationship(): 212 def add_relationship():
226 flash('You cannot create a relationship with the same product twice', 'danger') 226 flash('You cannot create a relationship with the same product twice', 'danger')
227 return redirect(url_for('.add_relationship')) 227 return redirect(url_for('.add_relationship'))
228 228
229 rel = CVRFRelationship(prodid1, request.form['relationtype'], prodid2) 229 rel = CVRFRelationship(prodid1, request.form['relationtype'], prodid2)
230 ptree.addRelationship(rel) 230 ptree.addRelationship(rel)
231 return redirect(url_for('document')) 231 return redirect(url_for('document.view'))
232 232
233 @producttree.route('/group/<groupid>/edit', methods=['GET', 'POST']) 233 @producttree.route('/group/<groupid>/edit', methods=['GET', 'POST'])
234 @document_required 234 @document_required
235 @producttree_required 235 @producttree_required
236 def edit_group(groupid): 236 def edit_group(groupid):
244 group._groupid = request.form['groupid'] 244 group._groupid = request.form['groupid']
245 group.setDescription(request.form['description'] or None) 245 group.setDescription(request.form['description'] or None)
246 group._productids = [] 246 group._productids = []
247 for productid in request.form.getlist('products'): 247 for productid in request.form.getlist('products'):
248 group.addProductID(productid) 248 group.addProductID(productid)
249 return redirect(url_for('document')) 249 return redirect(url_for('document.view'))
250 250
251 @producttree.route('/group/add', methods=['GET', 'POST']) 251 @producttree.route('/group/add', methods=['GET', 'POST'])
252 @document_required 252 @document_required
253 @producttree_required 253 @producttree_required
254 def add_group(): 254 def add_group():
258 group = CVRFGroup(request.form['groupid']) 258 group = CVRFGroup(request.form['groupid'])
259 group.setDescription(request.form['description'] or None) 259 group.setDescription(request.form['description'] or None)
260 for productid in request.form.getlist('products'): 260 for productid in request.form.getlist('products'):
261 group.addProductID(productid) 261 group.addProductID(productid)
262 get_current()._producttree.addGroup(group) 262 get_current()._producttree.addGroup(group)
263 return redirect(url_for('document')) 263 return redirect(url_for('document.view'))

http://farol.wald.intevation.org