def get(self): ret_val = {} if(self.does_user_own_appliance()): wo = WorkOrder() wo.update_state({'fix_by': self['fix_by'], 'appliance':self['appliance'], 'provider':self['provider'], 'remarks':self['remarks'], 'priority':self['priority']}, self.session['role']) ret_val = {'status':'success','work_order_id':wo.key().id()} else: ret_val = {'status':'error','message':'User does not own the appliance'} self.write(json.dumps(ret_val))
def get_work_orders_for_logged_in_user(self): email = self.session['email'] workorders = [] if is_store_login(self): appliances = [] stores = Store.all().filter(self.session['role'] + ' =', email) for store in stores: appliances.extend([appliance.id for appliance in Appliance.all().filter('store =', store).fetch(100)]) for appliance in appliances: workorders.extend([wo for wo in WorkOrder.all().filter('appliance =', str(appliance))]) elif is_provider_login(self): providers = [p for p in Provider.all().fetch(100) if p.owner.key().name() == email] for provider in providers: workorders.extend([wo for wo in WorkOrder.all().filter('provider =', str(provider.key().id()))]) return workorders
def post(self): wo = WorkOrder.get_by_id(long(self['work_order'])) ret_val = {} params = {} if self['params']: params_str = self['params'] entry_strs = params_str.split(';') for entry_str in entry_strs: entry = entry_str.split(':') params[entry[0]] = entry[1] ret_val = wo.update_state(params, self.session['role']) self.write(json.dumps(ret_val))
def post(self): wo = WorkOrder.get_by_id(long(self['work_order'])) print(self['params']) ret_val = wo.estimate(self['approval'], self['params']) self.write(json.dumps(ret_val))
def post(self): wo = WorkOrder.get_by_id(long(self['work_order'])) wo.cancel() self.write(json.dumps({'status':'success'}))
def get(self): path = 'work_order_estimate.html' action = self['action'] if self['action'] else '' wo = WorkOrder.get_by_id(long(self['work_order'])) template_values = {'work_order':self['work_order'], 'action':action, 'service_date':wo.fix_by_date} self.write(self.get_rendered_html(path, template_values), 200)