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