예제 #1
0
파일: models.py 프로젝트: jvd33/ToolShare
 def send_accept(self):
     sender = get_object_or_404(ourUser, id=self.owner.id)
     receiver = get_object_or_404(ourUser, id=self.borrower.id)
     subject = "tool request accepted"
     contents = sender.username + " has accepted your request"
     message = Message(
         date_sent=datetime.datetime.now(), subject=subject,
         contents=contents, sender=sender, receiver=receiver,sent_by_system=True)
     message.save()
예제 #2
0
파일: models.py 프로젝트: jvd33/ToolShare
 def change_community(self):
     contents = self.owner.username + " has changed communities. Your reservation has been cancelled, please return the tool."
     sender = get_object_or_404(ourUser, pk=self.owner.id)
     receiver = get_object_or_404(ourUser, pk=self.borrower.id)
     subject = "User Community Change"
     message = Message(
         date_sent=datetime.datetime.now(), subject=subject,
         contents=contents, sender=sender, receiver=receiver,sent_by_system=True)
     message.save()
예제 #3
0
파일: models.py 프로젝트: jvd33/ToolShare
 def chain_mail(self, admin, user):
     contents = admin.username + " has updated your community."
     sender = get_object_or_404(ourUser,username=admin.username)
     receiver = get_object_or_404(ourUser, pk=user.id)
     subject = "Community changes"
     message = Message(
         date_sent=datetime.datetime.now(), subject=subject,
         contents=contents, sender=sender, receiver=receiver,sent_by_system=True)
     message.save()
예제 #4
0
파일: models.py 프로젝트: jvd33/ToolShare
 def send_deny(self, content):
     sender = get_object_or_404(ourUser, id=self.owner.id)
     receiver = get_object_or_404(ourUser, id=self.borrower.id)
     subject = "tool request denied"
     contents = content
     message = Message(
         date_sent=datetime.datetime.now(), subject=subject,
         contents=contents, sender=sender, receiver=receiver)
     message.save()
예제 #5
0
파일: models.py 프로젝트: jvd33/ToolShare
 def admin_change(self,user):
     self.admin = user
     self.save()
     users = ourUser.objects.filter(community=self)
     for person in users:
         contents = user.username + " is now the admin of your community."
         sender = get_object_or_404(ourUser,username=user.username)
         receiver = get_object_or_404(ourUser, pk=user.id)
         subject = "admin changes"
         message = Message(
             date_sent=datetime.datetime.now(), subject=subject,
             contents=contents, sender=sender, receiver=receiver,sent_by_system=True)
         message.save()
예제 #6
0
 def createMessage(user1=None, user2=None, reservation=None):
     # create message
     if user1 is None:
         user1 = createUserOne()
     if user2 is None:
         user2 = createUserTwo()
     message = Message(
         date_sent = datetime.datetime.now()-datetime.timedelta(days=1),
         subject = "Test Message",
         contents = "This is a test message",
         sender = user1,
         receiver = user2)
     message.save()
     return message
예제 #7
0
파일: tasks.py 프로젝트: jvd33/ToolShare
def upkeep():
    while(True):
        now = datetime.now()
        tools = Tool.objects.all()
        for tool in tools:
            #go through all the tools and then get all reservations associated with those tools
            reservations = Reservation.objects.filter(is_complete=False, tool=tool, is_active=True, approved=True)
            if len(reservations) != 0:
                #this is the case where there is currently an active reservation for a tool
                for reservation in reservations:
                    if reservation.return_date < now:
                        #if the scheduled return date is less than now
                        if not reservation.message_sent:
                            #if there hasn't already been a notification sent
                            print(now.isoformat(' ') + " sending message to " + tool.borrower.username)
                            contents = "Your reservation has expired. Please return "+ reservation.owner.username +"'s "+ reservation.tool.name +"."
                            sender = get_object_or_404(ourUser, pk=tool.owner.id)
                            receiver = get_object_or_404(ourUser, pk=tool.borrower.id)
                            subject = "Expired Reservation"
                            message = Message(
                            date_sent=datetime.now(), subject=subject,
                            contents=contents, sender=sender, receiver=receiver,sent_by_system=True)
                            message.save()
                            reservation.message_sent = True
                            reservation.save()
            else:
                #from here we can assume the tool is not currently being borrowed
                reservations = Reservation.objects.filter(is_complete=False, tool=tool, approved=True, skipped=False)
                for reservation in reservations:
                    now = datetime.now()
                    if reservation.borrow_request_date <= now and reservation.return_date >= now:
                        #this is the case where there is no active reservation and this one fits the time slot
                        print(now.isoformat(' ') + " Activating reservation for " + tool.name)
                        reservation.is_active = True
                        reservation.save()
                        tool.borrower = reservation.borrower
                        tool.save()

                    elif reservation.borrow_request_date <= now and reservation.return_date <= now:
                        #this is the case when someone doesn't return their tool on time and a reservation is skipped
                        print(now.isoformat(' ') + " Skipping reservation for " + tool.name) 
                        reservation.skipped = True
                        reservation.is_complete = True
                        reservation.save()
                    else:
                        #this is the case where the reservation is still in the future
                        pass

        time.sleep(7)
예제 #8
0
파일: models.py 프로젝트: jvd33/ToolShare
 def remove(self, res):
     if self.borrower:
         return False
     else:
         if len(res) != 0:
             for reservation in res:
                 reservation.skipped = True
                 contents = str(self.owner) + " has deactivated this tool: " 
                 sender = get_object_or_404(ourUser, pk=self.owner.id)
                 receiver = get_object_or_404(ourUser, pk=self.borrower.id)
                 subject = self.name + "has been deactivated."
                 message = Message(
                 date_sent=datetime.datetime.now(), subject=subject,
                 contents=contents, sender=sender, receiver=receiver,sent_by_system=True)
                 message.save()
                 reservation.save()
         self.is_active = False
         self.save()
         return True
예제 #9
0
파일: models.py 프로젝트: jonobrien/swen261
    def return_tool(self):
        reservation = get_object_or_404(Reservation, tool=self, is_active=True)
        if self.owner == self.borrower:
            self.borrower = None
            self.save()

            reservation.is_active = False
            reservation.is_complete = True
            reservation.returned_on = datetime.datetime.now()
            reservation.save()

        else:
            sender = get_object_or_404(ourUser, pk=reservation.borrower.id)
            receiver = get_object_or_404(ourUser, pk=reservation.owner.id)
            subject = "Please provide feed back for " + sender.username + "."
            message = Message(
                date_sent=datetime.datetime.now(), subject=subject,
                contents="temp", sender=sender, receiver=receiver,sent_by_system=True)
            message.save()
            contents = self.name + " has been returned to you." + "\n" + "<p><a href='/user/feedBack/" + str(reservation.id) + "/" + str(message.id) + "/'>feed back</a></p>"
            message.contents = contents
            message.save()

            self.borrower = None
            self.save()

            reservation.is_active = False
            reservation.is_complete = True
            reservation.returned_on = datetime.datetime.now()
            reservation.save()
예제 #10
0
파일: models.py 프로젝트: jvd33/ToolShare
    def return_from_home(self,stats,mess_id=None):
        reservation = get_object_or_404(Reservation, tool=self, is_active=True)     
        if stats:
            self.return_tool()
            if mess_id != None:
                message = get_object_or_404(Message,id=mess_id)
                message.delete_message(self.owner)
        else:
            sender = get_object_or_404(ourUser, pk=self.borrower.id)
            receiver = get_object_or_404(ourUser, pk=self.owner.id)
            subject = "Your tool has been returned"
            message = Message(
            date_sent=datetime.datetime.now(), subject=subject, sender=sender, contents="temp",receiver=receiver,sent_by_system=True)
            message.save()
            message.contents = self.name + " has been returned to you. Please confirm that it has been returned." + "\n" + "<p><a href='/toolshare/approveReturn/" + str(reservation.id) + "/" + str(message.id) + "/'>approve</a></p>" 
            message.save()

            self.borrower = None
            self.save()