title: Bug in Odoo gamification addon
body: <p>When I create a goal definition with:
  computation mode : (Automatic: sum on a field,
  Model : Sale Order Line,
  Field to Sum : SubTotal)</p>
  
  <p>When I add this goal definition to a challenge and try to start it, I get this traceback:</p>
  
  <pre><code>Client Traceback (most recent call last):
    File "/home/openerp/server/openerp/addons/web/http.py", line 204, in dispatch
      response["result"] = method(self, **self.params)
    File "/home/openerp/server/openerp/addons/web/controllers/main.py", line 1132, in call_button
      action = self._call_kw(req, model, method, args, {})
    File "/home/openerp/server/openerp/addons/web/controllers/main.py", line 1120, in _call_kw
      return getattr(req.session.model(model), method)(*args, **kwargs)
    File "/home/openerp/server/openerp/addons/web/session.py", line 42, in proxy
      result = self.proxy.execute_kw(self.session._db, self.session._uid, self.session._password, self.model, method, args, kw)
    File "/home/openerp/server/openerp/addons/web/session.py", line 30, in proxy_method
      result = self.session.send(self.service_name, method, *args)
    File "/home/openerp/server/openerp/addons/web/session.py", line 103, in send
      raise xmlrpclib.Fault(openerp.tools.ustr(e), formatted_info)
  
  Server Traceback (most recent call last):
    File "/home/openerp/server/openerp/addons/web/session.py", line 89, in send
      return openerp.netsvc.dispatch_rpc(service_name, method, args)
    File "/home/openerp/server/openerp/netsvc.py", line 296, in dispatch_rpc
      result = ExportService.getService(service_name).dispatch(method, params)
    File "/home/openerp/server/openerp/service/web_services.py", line 626, in dispatch
      res = fn(db, uid, *params)
    File "/home/openerp/server/openerp/osv/osv.py", line 190, in execute_kw
      return self.execute(db, uid, obj, method, *args, **kw or {})
    File "/home/openerp/server/openerp/osv/osv.py", line 132, in wrapper
      return f(self, dbname, *args, **kwargs)
    File "/home/openerp/server/openerp/osv/osv.py", line 199, in execute
      res = self.execute_cr(cr, uid, obj, method, *args, **kw)
    File "/home/openerp/server/openerp/osv/osv.py", line 187, in execute_cr
      return getattr(object, method)(cr, uid, *args, **kw)
    File "/home/openerp/server/openerp/addons/gamification/plan.py", line 342, in action_start
      return self.generate_goals_from_plan(cr, uid, ids, context=context)
    File "/home/openerp/server/openerp/addons/gamification/plan.py", line 439, in generate_goals_from_plan
      goal_obj.update(cr, uid, [new_goal_id], context=context)
    File "/home/openerp/server/openerp/addons/gamification/goal.py", line 278, in update
      new_value = res and res[0][field_name] or 0.0
  KeyError: u'price_subtotal'
  </code></pre>
  
  <p>this is a video that shows the scenario that I did: <a href="http://youtu.be/b546xTc1ArY" rel="nofollow">http://youtu.be/b546xTc1ArY</a></p>