예제 #1
0
 def get(self):
     # a={'Secretkey': 'secretkey', 'Raspberrypi_Mac': '5cf9dd52e02a'}
     # a=self.request.get('Data')
     # data = ast.literal_eval(a)
     # for i in data:
     secret = 'secretkey'
     if secret != "secretkey":
         self.response.write("Don't have permission")
         return
     mac = '5cf9dd52e02a'
     farm = Farmdb.query().filter(Farmdb.macPi == mac).fetch()
     # self.response.write(farm)
     # return
     listFarm = []
     for i in farm:
         listFarm.append({
             'idFarm': i.id,
             "idArduino": i.idArduino,
             'timeWater': i.timeWater,
             "wide": i.wide,
             "temp": i.temp,
             "timeEatDay": i.timeEatDay,
             "numberCrayfish": i.numberCrayfish
         })
     change = Changedb().query().filter(Changedb.macPi == mac)
     getChange = change.get()
     getChange.change = False
     getChange.put()
     self.response.write(listFarm)
예제 #2
0
    def get(self, *args, **kwargs):
        user = self.user_info
        nameSearch = kwargs['name']

        allfarm = Farmdb.query().order(Farmdb.id).filter(
            Farmdb.user == self.user_info['auth_ids'][0],
            Farmdb.nameFarm == nameSearch).fetch()
        if allfarm == []:
            self.redirect('/register?message=noSearch')
            return
        for i in allfarm:
            idFarm = i.id
        Notificationquery = Notificationdb.query().order(
            Notificationdb.idFarm).filter(
                Notificationdb.user == self.user_info['auth_ids'][0],
                Notificationdb.idFarm == idFarm).fetch()
        product_id = None
        params = {
            "product_id": product_id,
            "user": user,
            "type": "search",
            "content": allfarm,
            "notification": Notificationquery,
            'page': 1
        }
        self.response.headers['Content-Type'] = 'text/html'
        self.response.write(search.render(params))
예제 #3
0
def getAllFarm(self):
    try:
        user = self['auth_ids'][0]
        Farmquery = Farmdb.query().order(
            Farmdb.id).filter(Farmdb.user == user).fetch()
    except Exception as e:
        return "errorDB"
    return Farmquery
예제 #4
0
def getFarm(self, start=0, limit=10):
    try:
        user = self['auth_ids'][0]  #size,first
        Farmquery = Farmdb.query().order(
            Farmdb.id).filter(Farmdb.user == user).fetch(offset=start,
                                                         limit=limit)
    except Exception as e:
        return "errorDB"
    return Farmquery
예제 #5
0
    def post(self, *args, **kwargs):
        data = self.request
        user = self.user_info['auth_ids'][0]
        name = data.get('nameFarm')
        numberCrayfish = data.get('numberCrayfish')
        floor = data.get('floor')
        wide = data.get('wide')
        timeEatDay = data.get('timeEatDay')
        temp = data.get('temp')
        macPi = data.get('macPi')
        oldmacPi = data.get('oldMac')
        timeWater = data.get('timeWater')
        idFarm = data.get('id')
        idArduino = data.get('idArduino')
        oldFloor = data.get('oldFloor')
        idArduino = ast.literal_eval(idArduino)
        newListIdArduino = []
        if floor < oldFloor:
            for i in range(int(floor)):
                newListIdArduino.append(idArduino[i])

        elif floor > oldFloor:
            different = int(floor) - int(oldFloor)
            for i in range(different):
                idArduino.append(randomId('a', i))
            newListIdArduino = idArduino
        else:
            newListIdArduino = idArduino
        try:
            farm = Farmdb.query().filter(Farmdb.id == idFarm,
                                         Farmdb.user == user)
            change = Changedb().query().filter(Changedb.macPi == oldmacPi)
            getChange = change.get()
            getChange.macPi = macPi
            getChange.change = True
            getChange.put()
            farmget = farm.get()
            farmget.nameFarm = name
            farmget.numberCrayfish = int(numberCrayfish)
            farmget.timeEatDay = int(timeEatDay)
            farmget.temp = int(temp)
            farmget.wide = int(wide)
            farmget.user = user
            farmget.macPi = macPi
            farmget.floor = int(floor)
            farmget.idArduino = newListIdArduino
            farmget.timeWater = int(timeWater)
            farmget.put()
        except Exception as e:
            self.redirect('/register?message=errorDB')
            return
        list = []
        for i in farm:
            list.append(i)
        self.redirect('/register?message=updatefarm')
예제 #6
0
    def get(self):
        user = self.user_info
        try:
            farm = Farmdb.query().filter(
                Farmdb.user == self.user_info['auth_ids'][0])
        except Exception as e:
            self.redirect('/register?message=errorDB')
            return

        count = 0
        for i in farm:
            count += 1
        count += 1
        params = {"product_id": count, "user": user, "type": "create"}
        self.response.write(createfarm.render(params))
예제 #7
0
    def post(self, *args, **kwargs):
        try:
            idfarm = kwargs['idfarm']
            Farmquery = Farmdb.query(
                Farmdb.user == self.user_info['auth_ids'][0],
                Farmdb.id == idfarm)
            thisFarmquery = Farmquery.get()
            thisFarmquery.key.delete()

            Notiquery = Notificationdb.query(
                Notificationdb.user == self.user_info['auth_ids'][0],
                Notificationdb.idFarm == idfarm)
            thisNotiquery = Notiquery.get()
            thisNotiquery.key.delete()

            # thisFarmquery.nowFeeder=True
            # thisFarmquery.put()
        except Exception as e:
            self.redirect('/register?message=deletefarmerror')
            return
        self.redirect('/register?message=deletefarmsuccess')
        return
예제 #8
0
 def post(self):
     secret = self.request.get('Secretkey')
     if secret != "secretkey":
         self.response.write("Don't have permission")
         return
     mac = self.request.get('Raspberrypi_Mac')
     farm = Farmdb.query().filter(Farmdb.macPi == mac).fetch()
     listFarm = []
     for i in farm:
         listFarm.append({
             'idFarm': i.id,
             "idArduino": i.idArduino,
             'timeWater': i.timeWater,
             "wide": i.wide,
             "temp": i.temp,
             "timeEatDay": i.timeEatDay,
             "numberCrayfish": i.numberCrayfish
         })
     change = Changedb().query().filter(Changedb.macPi == mac)
     getChange = change.get()
     getChange.change = False
     getChange.put()
     self.response.write(listFarm)
예제 #9
0
    def post(self):
        data = self.request
        user = self.user_info['auth_ids'][0]
        nameFarm = data.get('nameFarm')
        numberCrayfish = data.get('numberCrayfish')
        floor = int(data.get('floor'))
        wide = data.get('wide')
        timeEatDay = data.get('timeEatDay')
        temp = data.get('temp')
        macPi = data.get('macPi')
        timeWater = data.get('timeWater')
        idFarm = randomId('f')
        checkNameFarm = Farmdb().query().filter(
            Farmdb.user == self.user_info['auth_ids'][0],
            Farmdb.nameFarm == nameFarm).fetch()
        if checkNameFarm:
            self.redirect('/register?message=haveNameFarm')
            return
        listIdArduino = []
        for i in range(floor):
            listIdArduino.append(randomId('a', i))
        farm = Farmdb()
        farm.id = idFarm
        farm.nameFarm = nameFarm
        farm.numberCrayfish = int(numberCrayfish)
        farm.floor = int(floor)
        farm.wide = int(wide)
        farm.timeEatDay = int(timeEatDay)
        farm.temp = int(temp)
        farm.user = user
        farm.macPi = macPi
        farm.idArduino = listIdArduino
        farm.timeWater = int(timeWater)
        farm.put()
        try:
            checkChange = Changedb().query().filter(
                Changedb.macPi == macPi).fetch()
            # add notification
            notification = Notificationdb()
            notification.user = user
            notification.idFarm = idFarm
            notification.put()
        except Exception as e:
            self.redirect('/register?message=errorDB')
            return

        if len(checkChange) == 0:
            change = Changedb()
            change.macPi = macPi
            change.put()
        self.redirect('/register?message=farmsuccess')