Exemple #1
0
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()
Exemple #2
0
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
Exemple #3
0
 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
Exemple #4
0
 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)
Exemple #5
0
 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)
Exemple #6
0
 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)
Exemple #7
0
 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)
Exemple #8
0
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
Exemple #9
0
 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)
Exemple #10
0
 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)
Exemple #11
0
 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')
Exemple #12
0
 def appliance_obj(self):
     return Appliance.get_by_id(long(self.appliance))
Exemple #13
0
 def post(self):
     id = self['id']
     name = self['name']
     Appliance.create(id, name)
Exemple #14
0
 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')
Exemple #15
0
 def post(self):
     app = Appliance()
     app.name = self['name']
     app.store = self['store']
     app.put()
Exemple #16
0
    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()