def set_time(_id: int, time_date: str) -> Meeting:
        time_to_db = datetime.datetime.strptime(time_date, "%H:%M %d.%m.%Y")

        meeting = Meeting.get((Meeting.initiator_id == _id) & (Meeting.is_ready == False))
        meeting.meeting_time = time_to_db
        meeting.is_ready = True
        meeting.save()
        return meeting
 def rate_meeting(_id: int, rating: int) -> Meeting:
     meeting = Meeting.get((Meeting.initiator_id == _id) | (Meeting.companion_id == _id))
     if _id == meeting.initiator_id:
         meeting.initiator_rate = rating
         meeting.save()
     if _id == meeting.companion_id:
         meeting.companion_rate = rating
         meeting.save()
     return meeting
 def leave_feedback(_id: int, feedback: str) -> Meeting:
     meeting = Meeting.get((Meeting.initiator_id == _id) | (Meeting.companion_id == _id))
     if _id == meeting.initiator_id:
         meeting.initiator_feedback = feedback
         meeting.save()
     if _id == meeting.companion_id:
         meeting.companion_feedback = feedback
         meeting.save()
     return meeting
Example #4
0
 def get(self, meeting_key=None):
     login_user = self.get_current_user()
     m = Meeting.get(meeting_key)
     if m is None:
         return self.error(404)
     if m.creator != login_user:
         return self.error(401) # access denied
     m.delete()
     return self.redirect_back()
Example #5
0
    def get(self, meeting_key=None, user_name=None):
        login_user = self.get_current_user()
        m = Meeting.get(meeting_key)
        if m is None:
            return self.error(404)
        if m.creator != login_user:
            return self.error(401)

        profile = Profile.gql('WHERE nickname = :1', user_name).get()
        m.delete_member(profile.get_user())
        return self.redirect_back()
    def get_active_meeting(_id: int) -> str:
        query = ((Meeting.initiator_id == _id) | (Meeting.companion_id == _id)) \
                & ((Meeting.status == MeetingStatus.planned) | (Meeting.status == MeetingStatus.planned))
        meeting: Meeting = Meeting.get(query)
        if _id == meeting.initiator_id.id:
            companion: User = User.get(User.id == meeting.companion_id)
        else:
            companion: User = User.get(User.id == meeting.initiator_id)

        meeting_time = meeting.meeting_time.strftime("%H:%M %d.%m.%Y")

        return f"Время:\n{meeting_time}\n\n" + UserController.get_info(companion.id)
Example #7
0
 def post(self, meeting_key=None):
     login_user = self.get_current_user()
     m = Meeting.get(meeting_key)
     if m is None:
         return self.error(404)
     if m.creator != login_user:
         return self.error(401)
     
     user_name = self.request.get('user_name')
     profile = Profile.gql('WHERE nickname = :1', user_name).get()
     if profile:
         m.add_member(profile.get_user())
     return self.redirect_back()
Example #8
0
    def post(self, meeting_key=None):
        from models.blip import Blip
        login_user = self.get_current_user()
        m = Meeting.get(meeting_key)
        if m is None:
            return self.error(404)
        if not m.has_member(login_user):
            return self.error(401)

        content = self.request.get('text', '').strip()
        attachment = self.request.get('attachment', '').strip()
        blip = Blip.new(login_user, content,
                        attachment=attachment, meeting=m)
        return self.redirect(m.href())
Example #9
0
    def get(self, meeting_key=None):
        from models.blip import Blip
        login_user = self.get_current_user()
        meeting = Meeting.get(meeting_key)
        if meeting is None or not meeting.is_active:
            return self.error(404)
        if not meeting.has_member(login_user):
            return self.error(401)
        c, p = Profile.get_or_create_from_user(meeting.creator)
        
        admin_profiles = [p]

        member_profiles = []
        members = meeting.members(include_creator=False)
        for u in members:
            c, p = Profile.get_or_create_from_user(u)
            member_profiles.append(p)

        followees = Follow.your_subscribers(login_user)
        followee_profiles = []
        for f in followees:
            if f.to_user not in members:
                c, p = Profile.get_or_create_from_user(f.to_user)
                followee_profiles.append(p)
            
        try:
            page = int(self.request.get('page', '1'))
        except ValueError:
            page = 1

        pagesize = settings.ROOM_PAGE_SIZE
        paginator = SimplePaginator(Blip.qs_for_meeting(meeting),
                                     page, pagesize)
        
        blips = each_profiles(paginator.object_list)
        return self.render('meeting_item.html', locals())
 def check_status(_id: int, status: MeetingStatus) -> bool:
     meeting = Meeting.get((Meeting.initiator_id == _id) | (Meeting.companion_id == _id))
     current_status = MeetingStatus(meeting.status)
     return current_status == status