def forms_valid(self, forms): forms['poster_form'].save() date = forms['date_form'].save() info = forms['show_info_form'].save(commit=False) if self.request.FILES.get('image'): info.poster, created = Image.objects.get_or_create( image=self.request.FILES.get('image'), title="Poster", user=self.request.user) elif self.request.POST.get('poster'): imageId = self.request.POST.get('poster') info.poster = get_object_or_None(Image, id=imageId) if not info.location: if info.venue_id: info.location = info.venue.profile.contact_info.location else: info.location = self.request.user.profile.contact_info.location info.save() forms['show_info_form'].save_m2m() participants = info.participants() thread = create_thread( participants=participants, sender=self.request.user, subject="Event Thread", body=str(self.request.user.profile) + " added you in an event", ) show = Show(info=info, date=date, thread=thread, approved=False) show.save() # create or edit event for each particpent in show for user in participants: if self.request.user != user: event = get_object_or_None(Event, show=show, calendar=user.calendar) if not event: event = Event(show=show, calendar=user.calendar) else: event = forms['event_form'].save(commit=False) event.show = show event.calendar = user.calendar event.approved = True event.save() show.save() return self.get_success_url()
def change_meeting(request): #print("come here") meetingid = request.POST.get('id') meeting = Meeting.objects.get(id=meetingid) # delete original meeting event relationship and events #mres = MeetingEventRelationship.objects.filter(meeting=meeting) #for mre in mres: # event = mre.event # event.delete() # mre.delete() description = "Notice! Meeting information is changed !! Please decide whether \ you will attend again!! (original meeting event is deleted automatically)\n" _deletemeeting(meeting) group_name = request.POST.get('group_name') group = Group.objects.get(name=group_name) admin = group.admin title = request.POST.get('changed_title') description += request.POST.get('changed_description') start_time = request.POST.get('changed_start_time') end_time = request.POST.get('changed_end_time') meeting = Meeting(group=group, title=title, description=description, start_time=start_time, end_time=end_time) meeting.save() event = Event(title=meeting.title, description=meeting.description, start=meeting.start_time, end=meeting.end_time) event.creator = admin calendar = Calendar.objects.get(slug=admin.username) event.calendar = calendar event.save() mer = MeetingEventRelationship(meeting=meeting, event=event) mer.save() memberlist = find_all_members(group, True) result = 'true' for member in memberlist: if member == admin: continue status = sendmeetinginvitation(admin, member, group, meeting) if status is False: result = 'false' data = {'valid': result} data = json.dumps(data) mimetype = 'application/json' return HttpResponse(data, mimetype)
def add_meeting(request): group_name = request.POST.get('group_name') title = request.POST.get('title') description = request.POST.get('description') start_time = request.POST.get('start_time') end_time = request.POST.get('end_time') group = Group.objects.get(name=group_name) admin = group.admin #find time convertor ##save this meeting into meeting table meeting = Meeting(group=group, title=title, description=description, start_time=start_time, end_time=end_time) meeting.save() #bai! save event for the admin event = Event(title=title, description=description, start=start_time, end=end_time) event.creator = admin calendar = Calendar.objects.get(slug=admin.username) event.calendar = calendar event.save() #bai! save meetingeventrelationship for admin mer = MeetingEventRelationship(meeting=meeting, event=event) mer.save() ##send invitation to all member ###find all member memberlist = find_all_members(group, True) result = 'false' for member in memberlist: if member == admin: continue status = sendmeetinginvitation(admin, member, group, meeting) if status == True: result = 'true' else: result = 'false' data = {'valid': result} data = json.dumps(data) mimetype = 'application/json' return HttpResponse(data, mimetype)
def accept_meeting(request): meeting_info = request.POST.getlist('meeting_info[]') username = request.POST.get('username') group_name = meeting_info[2] title = meeting_info[0] description = meeting_info[1] start_time = meeting_info[3] end_time = meeting_info[4] meetingid = meeting_info[5] # judge whether the member is in the meeting already meeting = Meeting.objects.get(id=meetingid) mers = MeetingEventRelationship.objects.filter(meeting=meeting) result = 'false' for mer in mers: if mer.event.creator.username == username: result = 'true' break if result == 'false': group = Group.objects.get(name=group_name) #send notification to admin admin = Group.objects.get(name=group_name).admin member = User.objects.get(username=username) message = username+ ' will attend the meeting ' + title + 'of group ' + group_name + '.' status = messageHandler.send_message(member, admin, message) if status == 200: result = 'true' else: result = 'false' if '-' in start_time: def convert(ddatetime): if ddatetime: # ddatetime = ddatetime.split(' ')[0] ddatetime = ddatetime.split('+')[0] print("ddatetime is " + ddatetime) time = datetime.datetime.strptime(ddatetime, '%Y-%m-%dT%H:%M:%S') return time else: def convert(ddatetime): return datetime.datetime.utcfromtimestamp(float(ddatetime)) #store an event of that user ##add event start_time = convert(start_time) end_time = convert(end_time) if settings.USE_TZ: # If USE_TZ is True, make start and end dates aware in UTC timezone utc = pytz.UTC start_time = utc.localize(start_time) end_time = utc.localize(end_time) event = Event(title=title, description=description, start=start_time, end=end_time) user = User.objects.get(username=username) calendar = Calendar.objects.get(slug=username) event.creator = user event.calendar = calendar event.save() # accept the invitation messageHandler.set_meetinginvitation_accept(member, group, meeting) #increase attendees # add meeting event relationship mer = MeetingEventRelationship(meeting=meeting, event=event) mer.save() res = {'valid': result} res = json.dumps(res) mimetype = 'application/json' return HttpResponse(res, mimetype)