Author: rjollos
Date: Tue Mar 4 20:50:32 2014
New Revision: 1574195
URL: http://svn.apache.org/r1574195
Log:
0.8dev: When attempting to add a product, preserve form data when a warning is
raised. Refs #661.
The warning messages were also made more specific.
Modified:
bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py
bloodhound/trunk/bloodhound_multiproduct/multiproduct/templates/admin_products.html
bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_admin_products.html
Modified: bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py
URL:
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py?rev=1574195&r1=1574194&r2=1574195&view=diff
==============================================================================
--- bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py
(original)
+++ bloodhound/trunk/bloodhound_multiproduct/multiproduct/product_admin.py Tue
Mar 4 20:50:32 2014
@@ -85,6 +85,7 @@ class ProductAdminPanel(TicketAdminPanel
'description':description,
'owner':owner,
}
+ data = {}
# Detail view?
if product:
@@ -105,27 +106,38 @@ class ProductAdminPanel(TicketAdminPanel
default = self.config.get('ticket', 'default_product')
if req.method == 'POST':
# Add Product
- if req.args.get('add') and req.args.get('prefix'):
+ if req.args.get('add'):
req.perm.require('PRODUCT_CREATE')
- if not owner:
- add_warning(req, _('All fields are required!'))
- req.redirect(req.href.admin(cat, page))
-
- try:
- prod = Product(self.env, keys)
- except ResourceNotFound:
- prod = Product(self.env)
- prod.update_field_dict(keys)
- prod.update_field_dict(field_data)
- prod.insert()
- add_notice(req, _('The product "%(id)s" has been
added.',
- id=prefix))
- req.redirect(req.href.admin(cat, page))
+ if not (prefix and name and owner):
+ if not prefix:
+ add_warning(req, _("You must provide a prefix "
+ "for the product."))
+ if not name:
+ add_warning(req, _("You must provide a name "
+ "for the product."))
+ if not owner:
+ add_warning(req, _("You must provide an owner "
+ "for the product."))
+ data['prefix'] = prefix
+ data['name'] = name
+ data['owner'] = owner
+ print data
else:
- if prod.prefix is None:
- raise TracError(_('Invalid product id.'))
- raise TracError(_("Product %(id)s already exists.",
- id=prefix))
+ try:
+ prod = Product(self.env, keys)
+ except ResourceNotFound:
+ prod = Product(self.env)
+ prod.update_field_dict(keys)
+ prod.update_field_dict(field_data)
+ prod.insert()
+ add_notice(req, _('The product "%(id)s" has been '
+ 'added.', id=prefix))
+ req.redirect(req.href.admin(cat, page))
+ else:
+ if prod.prefix is None:
+ raise TracError(_('Invalid product id.'))
+ raise TracError(_("Product %(id)s already exists.",
+ id=prefix))
# Remove product
elif req.args.get('remove'):
@@ -149,10 +161,9 @@ class ProductAdminPanel(TicketAdminPanel
_save_config(self.config, req, self.log)
req.redirect(req.href.admin(cat, page))
- products = Product.select(self.env)
- data = {'view': 'list',
- 'products': products,
- 'default': default}
+ data['view'] = 'list'
+ data['products'] = Product.select(self.env)
+ data['default'] = default
if self.config.getbool('ticket', 'restrict_owner'):
perm = PermissionSystem(self.env)
def valid_owner(username):
Modified:
bloodhound/trunk/bloodhound_multiproduct/multiproduct/templates/admin_products.html
URL:
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_multiproduct/multiproduct/templates/admin_products.html?rev=1574195&r1=1574194&r2=1574195&view=diff
==============================================================================
---
bloodhound/trunk/bloodhound_multiproduct/multiproduct/templates/admin_products.html
(original)
+++
bloodhound/trunk/bloodhound_multiproduct/multiproduct/templates/admin_products.html
Tue Mar 4 20:50:32 2014
@@ -86,12 +86,12 @@ $product.description</textarea>
<fieldset>
<legend>Add Product:</legend>
<div class="field">
- <label>Prefix:<br /><input type="text" name="prefix" /></label>
+ <label>Prefix:<br /><input type="text" name="prefix"
value="$prefix" /></label>
</div>
<div class="field">
- <label>Name:<br /><input type="text" name="name" /></label>
+ <label>Name:<br /><input type="text" name="name" value="$name"
/></label>
</div>
- ${owner_field()}
+ ${owner_field(owner)}
<div class="buttons">
<input type="submit" name="add" value="${_('Add')}"/>
</div>
Modified:
bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_admin_products.html
URL:
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_admin_products.html?rev=1574195&r1=1574194&r2=1574195&view=diff
==============================================================================
--- bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_admin_products.html
(original)
+++ bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_admin_products.html
Tue Mar 4 20:50:32 2014
@@ -105,16 +105,17 @@
<label class="control-label" for="prefix">Prefix:</label>
<div class="controls">
<input type="text" id="prefix" class="input-large"
- name="prefix" />
+ name="prefix" value="$prefix" />
</div>
</div>
<div class="control-group">
<label class="control-label" for="name">Name:</label>
<div class="controls">
- <input type="text" id="name" class="input-large"
name="name" />
+ <input type="text" id="name" class="input-large"
+ name="name" value="$name" />
</div>
</div>
- ${owner_field()}
+ ${owner_field(owner)}
<div class="control-group">
<input type="submit" class="btn" name="add"
value="${_('Add')}" />