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
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()
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)
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()
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())
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