Exemplo n.º 1
0
    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
Exemplo n.º 2
0
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))