def save(self, host_class, host_session=None, del_links=None, add_links=None): from classes.models import Session from host.models import HostClassSession # if host_session: # session = host_session.course_session # session.title = self.cleaned_data['title'] # session.description = self.cleaned_data['description'] # session.video_url = self.cleaned_data['video_url'] # # else: if host_session: course_session = host_session.course_session # else: course_session = None session = Session(title=self.cleaned_data['title'], description=self.cleaned_data['description'], video_url=self.cleaned_data['video_url'], previous_version=course_session) session.save() links = session.link.all() for link in links: if not link.uuid in del_links: SessionLink(url=link.url, title=link.title, session=session).save() for url, title in add_links: SessionLink(url=url, title=title, session=session).save() date = self.cleaned_data['date'] time = self.cleaned_data['time'] if host_session: host_session.date = datetime.datetime.combine(date,time) host_session.course_session = session else: host_session = HostClassSession(course_session=session, host_class=host_class, date=datetime.datetime.combine(date,time)) host_session.save() #for key in request.GET: # try: # type, number = key.split('_') # if type == 'video': # session_video = SessionLink(session=course_session, url=video_url) # except: # pass return host_session
def host_create(request, course_b36=None, additional_vars={}): course_id = base36_to_int(course_b36) user = request.user places = None if request.user.is_authenticated(): places = user.place.all() course = CourseInfo.objects.get(pk=course_id) if request.method == 'POST': post_data = request.POST session_form = CourseSessionForm(post_data) # this form captures basic info, MWF, start date, meeting time place_fm = VenueForm(post_data) if session_form.is_valid(): if post_data['place'] == '-1': if place_fm.is_valid(): place = place_fm.save(request) else: raise Exception("place not valid?") else: place = Place.objects.get(pk=int(post_data["place"])) hc = session_form.save(course, place) hc_member = HostClassMember(host_class=hc, user=request.user, editor=True) hc_member.save() sessions = course.course_info_session.all() if len(sessions) > 0: for course_info_session in sessions: session = course_info_session.session next_date = hc.next_available_date() hcs = HostClassSession(host_class=hc, course_session=session, date=datetime.combine(next_date, hc.meeting_time)) hcs.save() next = request.POST.get('next', '') if next == '1': return HttpResponseRedirect('/h/meetings/%s/?next=1' % (int_to_base36(hc.id))) else: return HttpResponseRedirect('/h/v/%s/' % (int_to_base36(hc.pk))) else: session_form = CourseSessionForm() render_vars = {'course': course, 'places': places, 'session_form':session_form, 'class_creater': True} return render_to_response('host/make2.html', render_vars , context_instance=RequestContext(request))