--- a/ForgeTracker/forgetracker/tracker_main.py
+++ b/ForgeTracker/forgetracker/tracker_main.py
@@ -627,7 +627,6 @@
@expose('jinja:tracker/bin.html')
def index(self, **kw):
require(has_artifact_access('save_searches', app=self.app))
- c.bin_form = W.bin_form
count = len(self.app.bins)
return dict(bins=self.app.bins, count=count, app=self.app)
@@ -635,7 +634,6 @@
@expose('jinja:tracker/bin.html')
def bins(self):
require(has_artifact_access('save_searches', app=self.app))
- c.bin_form = W.bin_form
count = len(self.app.bins)
return dict(bins=self.app.bins, count=count, app=self.app)
@@ -672,6 +670,27 @@
self.app.globals.invalidate_bin_counts()
bin.delete()
redirect(request.referer)
+
+ @without_trailing_slash
+ @h.vardec
+ @expose()
+ @require_post()
+ def update_bins(self, field_name=None, bins=None, **kw):
+ require(has_artifact_access('save_searches', app=self.app))
+ for bin_form in bins:
+ bin = None
+ if bin_form['id']:
+ bin = TM.Bin.query.find(dict(app_config_id=self.app.config._id, _id=ObjectId(bin_form['id']))).first()
+ elif bin_form['summary'] and bin_form['terms']:
+ bin = TM.Bin(app_config_id=self.app.config._id, summary='')
+ if bin:
+ if bin_form['delete'] == 'True':
+ bin.delete()
+ else:
+ bin.summary = bin_form['summary']
+ bin.terms = bin_form['terms']
+ self.app.globals.invalidate_bin_counts()
+ redirect('.')
class changelog(object):
"""