def appliance_mapper(member, role_name): fields = member['fields'] appliance_obj = Appliance.all().filter('airtable_id =', fields['Appliance_Id']).get() if not appliance_obj: appliance_obj = Appliance() appliance_obj.name = fields['Appliance Name'][0] appliance_obj.serial_num = fields['Serial #'] appliance_obj.model = fields['Model #'] appliance_obj.manufacturer = fields['Manufacturer'][0] appliance_obj.store = obj_map[fields['Store'][0]] appliance_obj.airtable_id = fields['Appliance_Id'] appliance_obj.put()
def get_appliances_for_logged_in_user(self): email = self.session['email'] role = self.session['role'] appliances = [] stores = Store.all().filter(role + ' =', email) for store in stores: appliances.extend([appliance for appliance in Appliance.all().filter('store =', store).fetch(100)]) return appliances
def does_user_own_appliance(self): email = self.session['email'] role = self.session['role'] stores = Store.all().filter(role + ' =', email) appliance = Appliance.get_by_id(long(self['appliance'])) for store in stores: if appliance.store.key().id() == store.key().id(): return True return False
def get(self): path = 'provider_details.html' provider = Provider.get_by_id(long(self['id'])) appliance_id = self['appliance_id'] appliance = Appliance.for_id(long(appliance_id)) if appliance_id else None store_name = appliance.store.name if appliance else '' schedule_repair_url = provider.schedule_repair_url schedule_repair_url = schedule_repair_url + '&appliance_id='+ appliance_id if appliance_id else schedule_repair_url template_values = {'details':provider.template_format,'name':provider.name, 'ratings':[x for x in range(1,6)], 'schedule_repair_url':schedule_repair_url, 'appliance_id':appliance_id, 'store_name':store_name} self.write(self.get_rendered_html(path, template_values), 200)
def get(self): path = "appliance_details.html" appliance = Appliance.get_by_id(long(self["id"])) template_values = { "details": appliance.template_format, "name": appliance.name, "select_provider_url": appliance.select_provider_url, "store_name": appliance.store.name, } self.write(self.get_rendered_html(path, template_values), 200)
def get(self): path = 'provider_schedule_repair.html' provider = Provider.get_by_id(long(self['id'])) appliance = Appliance.get_by_id(long(self['appliance_id'])) details = [ { 'name':'provider', 'title':'Provider', 'value':provider.name, 'id':provider.id, 'readonly':'readonly' }, { 'name':'store', 'title':'Store', 'value':appliance.store.name, 'readonly':'readonly' }, { 'name':'appliance', 'title':'Appliance', 'value':appliance.name, 'readonly':'readonly' }, { 'name':'appliance_serial', 'title':'Serial Number', 'value':appliance.serial_num, 'readonly':'readonly' }, { 'name':'appliance_manufacturer', 'title':'Manufacturer', 'value':appliance.manufacturer, 'readonly':'readonly' }, { 'name':'fix_by', 'value':'Select date (mm/dd/yy)', 'title':'Fix by date', 'type':'date', 'readonly':'' }, { 'name':'remarks', 'value':'', 'title':'Remarks', 'readonly':'' } ] priorities = ['Critical', 'Normal', 'Routine'] template_values = {'details':details,'name':'New Work Order', 'ratings':[x for x in range(1,6)], 'priorities':priorities, 'appliance_id':self['appliance_id']} self.write(self.get_rendered_html(path, template_values), 200)
def load_manager_view(self, appliance_id): providers = [provider for provider in Provider.all().fetch(100)] path = "select_provider.html" markers = [[provider.name, provider.location.lat, provider.location.lon] for provider in providers] appliance = Appliance.for_id(long(appliance_id)) store_name = appliance.store.name if appliance else "" template_values = { "providers": providers, "count": len(providers), "markers": markers, "appliance_id": appliance_id, "store_name": store_name, } self.write(self.get_rendered_html(path, template_values), 200)
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 get(self): email = self.session["email"] role = self.session["role"] stores = Store.all().filter(role + " =", email).order("name") if stores.count() > 1: self.session["bottom_menu_1"] = "Stores" elif stores.count() == 1: self.session["bottom_menu_1"] = "Appliances" store_appliances = [] for store in stores: appliances = [appliance for appliance in Appliance.all().filter("store =", store).fetch(100)] store_appliances.append((store, appliances)) path = "appliances.html" template_values = {"store_appliances": store_appliances, "count": len(store_appliances)} self.write(self.get_rendered_html(path, template_values), 200)
def get(self): path = "appliance_schedule_repair.html" appliance = Appliance.for_id(long(self["id"])) providers = Provider.all().fetch(100) provider_array = [(provider.id, provider.name) for provider in providers] details = [ {"name": "appliance", "value": appliance.name, "id": appliance.id, "readonly": "readonly"}, {"name": "provider", "value": "Choose Provider", "providers": provider_array, "readonly": ""}, {"name": "provider_owner", "value": "Provider Owner", "readonly": "readonly"}, {"name": "provider_phone", "value": "Provider Phone Number", "readonly": "readonly"}, {"name": "fix_by", "value": "Fix by date", "type": "date", "readonly": ""}, {"name": "remarks", "value": "Remarks", "readonly": ""}, ] priorities = ["Critical", "Normal", "Routine"] template_values = { "details": details, "name": "New Work Order", "details_url": appliance.details_url, "priorities": priorities, } self.write(self.get_rendered_html(path, template_values), 200)
def post(self): id = self['id'] appliance = Appliance.get_by_id(long(id)) self.write(json.dumps({'appliance':{'serial':appliance.serial_num,'manufacturer':appliance.manufacturer}}), content_type = 'application/json')
def appliance_obj(self): return Appliance.get_by_id(long(self.appliance))
def post(self): id = self['id'] name = self['name'] Appliance.create(id, name)
def post(self): id = self['id'] appliance = Appliance.get_by_id(id) if appliance: self.write(json.dumps({'id': id, 'name':appliance.name}), 200, 'application/json')
def post(self): app = Appliance() app.name = self['name'] app.store = self['store'] app.put()
def post(self): tdc = TestDataCreationHandler() tdc.create_member(self['owner_email'], self['owner_name'], self['owner_phone'], 'owner') tdc.create_member(self['manager_email'], self['manager_name'], self['manager_phone'], 'manager') store_obj = Store() store_obj.name = self['store_name'] store_obj.owner = self['owner_email'] store_obj.manager = self['manager_email'] store_obj.location = db.GeoPt(self['store_lat'],self['store_long']) store_obj.address = " ".join(self['store_address'].split("\n")) store_obj.billing_address = " ".join(self['store_billing_address'].split("\n")) store_obj.put() appliances_csv = self['appliances_csv'] appliances = appliances_csv.splitlines() appliance_index = [index.strip("\"") for index in str(appliances[0]).split(',')] for appliance in appliances[1:]: appliance = [detail.strip("\"") for detail in str(appliance).split(',')] appliance_obj = Appliance() appliance_obj.name = appliance[appliance_index.index("Name of Appliance")] appliance_obj.serial_num = appliance[appliance_index.index("Serial #")] appliance_obj.model = appliance[appliance_index.index("Model #")] appliance_obj.manufacturer = appliance[appliance_index.index("Manufacturer Name")] appliance_obj.last_repair_date = self.get_appliance_form_date("Last Repair Date (if you know it)", appliance, appliance_index) appliance_obj.installed_on = self.get_appliance_form_date("Installed on (if known)", appliance, appliance_index) appliance_obj.warranty = self.get_appliance_form_date("Is it in warranty (if known)", appliance, appliance_index) appliance_obj.store = store_obj appliance_obj.put()