コード例 #1
0
    def form_valid(self, form):
        self.object = form.save(commit=False)
        self.object.title = u"[公告]" + self.object.title
        self.object.author_id = self.request.user.id
        self.object.classroom_id = self.kwargs['classroom_id']
        self.object.type = 1
        self.object.save()
        self.object.url = "/teacher/announce/detail/" + str(self.object.id)
        self.object.save()

        #附件
        files = []
        if self.request.FILES.getlist('files'):
             for file in self.request.FILES.getlist('files'):
                fs = FileSystemStorage()
                filename = uuid4().hex
                fs.save("static/attach/"+str(self.request.user.id)+"/"+filename, file)
                files.append([filename, file.name])
        if files:
            for file, name in files:
                content = MessageContent()
                content.title = name
                content.message_id = self.object.id
                content.filename = str(self.request.user.id)+"/"+file
                content.save()
        # 班級學生訊息
        enrolls = Enroll.objects.filter(classroom_id=self.kwargs['classroom_id'])
        for enroll in enrolls:
            messagepoll = MessagePoll(message_id=self.object.id, reader_id=enroll.student_id)
            messagepoll.save()
        return redirect("/teacher/announce/"+str(self.kwargs['classroom_id']))
コード例 #2
0
 def form_valid(self, form):
     classrooms = self.request.POST.getlist('classrooms')
     files = self.request.FILES.getlist('files')
     self.object = form.save(commit=False)
     filenames = []
     for file in files:
         fs = FileSystemStorage()
         filename = uuid4().hex
         fs.save("static/message/" + filename, file)
         filenames.append([filename, file.name])
     for classroom_id in classrooms:
         message = Message()
         message.title = u"[公告]" + self.object.title
         message.author_id = self.request.user.id
         message.classroom_id = classroom_id
         message.content = self.object.content
         message.save()
         message.url = "/teacher/announce/detail/" + str(message.id)
         message.save()
         for filename in filenames:
             messagefile = MessageFile(message_id=message.id,
                                       filename=filename[0],
                                       before_name=filename[1])
             messagefile.save()
         # 班級學生訊息
         enrolls = Enroll.objects.filter(classroom_id=classroom_id)
         for enroll in enrolls:
             messagepoll = MessagePoll(message_id=message.id,
                                       reader_id=enroll.student_id,
                                       classroom_id=classroom_id)
             messagepoll.save()
     return redirect("/teacher/announce/" + self.kwargs['classroom_id'])
コード例 #3
0
 def form_valid(self, form):
     self.object = form.save(commit=False)
     user_name = User.objects.get(id=self.request.user.id).first_name
     self.object.title = u"[私訊]" + user_name + ":" + self.object.title
     self.object.author_id = self.request.user.id
     self.object.reader_id = self.kwargs['user_id']
     self.object.type = 2
     self.object.save()
     self.object.url = "/account/line/detail/" + self.kwargs[
         'classroom_id'] + "/" + str(self.object.id)
     self.object.classroom_id = 0 - int(self.kwargs['classroom_id'])
     self.object.save()
     if self.request.FILES:
         for file in self.request.FILES.getlist('files'):
             content = MessageContent()
             fs = FileSystemStorage(settings.BASE_DIR + "/static/attach/" +
                                    str(self.request.user.id) + "/")
             filename = uuid4().hex
             content.title = file.name
             content.message_id = self.object.id
             content.filename = str(self.request.user.id) + "/" + filename
             fs.save(filename, file)
             content.save()
     # 訊息
     messagepoll = MessagePoll(message_id=self.object.id,
                               reader_id=self.kwargs['user_id'],
                               message_type=2,
                               classroom_id=0 -
                               int(self.kwargs['classroom_id']))
     messagepoll.save()
     return redirect("/account/line/")
コード例 #4
0
    def form_valid(self, form):
        self.object = form.save(commit=False)
        self.object.title = u"[系統公告]" + self.object.title
        self.object.author_id = self.request.user.id
        self.object.classroom_id = 0
        self.object.type = 1
        self.object.save()
        self.object.url = "/account/line/detail/0/" + str(self.object.id)
        self.object.save()

        #附件
        files = []
        if self.request.FILES.getlist('files'):
            for file in self.request.FILES.getlist('files'):
                fs = FileSystemStorage()
                filename = uuid4().hex
                fs.save(
                    "static/attach/" + str(self.request.user.id) + "/" +
                    filename, file)
                files.append([filename, file.name])
        if files:
            for file, name in files:
                content = MessageContent()
                content.title = name
                content.message_id = self.object.id
                content.filename = str(self.request.user.id) + "/" + file
                content.save()
        # 班級學生訊息
        teachers = User.objects.filter(groups__name='teacher')
        for teacher in teachers:
            messagepoll = MessagePoll(message_id=self.object.id,
                                      reader_id=teacher.id,
                                      message_type=1)
            messagepoll.save()
        return redirect("/")
コード例 #5
0
def make(request):
    user_id = request.POST.get('userid')
    action = request.POST.get('action')
    if user_id and action:
        user = User.objects.get(id=user_id)
        try:
            group = Group.objects.get(name="teacher")
        except ObjectDoesNotExist:
            group = Group(name="teacher")
            group.save()
        if action == 'set':
            group.user_set.add(user)
            # create Message
            title = "<" + request.user.first_name + u">設您為教師"
            url = "/teacher/classroom"
            message = Message(title=title, url=url, time=timezone.now())
            message.save()

            # message for group member
            messagepoll = MessagePoll(message_id=message.id, reader_id=user_id)
            messagepoll.save()
        else:
            group.user_set.remove(user)
            # create Message
            title = "<" + request.user.first_name + u">取消您為教師"
            url = "/"
            message = Message(title=title, url=url, time=timezone.now())
            message.save()

            # message for group member
            messagepoll = MessagePoll(message_id=message.id, reader_id=user_id)
            messagepoll.save()
        return JsonResponse({'status': 'ok'}, safe=False)
    else:
        return JsonResponse({'status': 'no'}, safe=False)
コード例 #6
0
 def form_valid(self, form):
     valid = super(LineCreate, self).form_valid(form)
     self.object = form.save(commit=False)
     user_name = User.objects.get(id=self.request.user.id).first_name
     self.object.title = u"[私訊]" + user_name + ":" + self.object.title
     self.object.author_id = self.request.user.id
     self.object.save()
     # 訊息
     messagepoll = MessagePoll(message_id=self.object.id,
                               reader_id=self.kwargs['user_id'])
     messagepoll.save()
     return valid
コード例 #7
0
 def form_valid(self, form):
     valid = super(AnnounceCreate, self).form_valid(form)
     self.object = form.save(commit=False)
     classroom = Classroom.objects.get(id=self.kwargs['classroom_id'])
     self.object.title = u"[公告]" + classroom.name + ":" + self.object.title
     self.object.author_id = self.request.user.id
     self.object.save()
     # 訊息
     enrolls = Enroll.objects.filter(classroom_id=self.kwargs['classroom_id'])
     for enroll in enrolls :
         messagepoll = MessagePoll(message_id=self.object.id, reader_id=enroll.student_id)
         messagepoll.save()              
     return valid
コード例 #8
0
 def form_valid(self, form):
     self.object = form.save(commit=False)
     user_name = User.objects.get(id=self.request.user.id).first_name
     self.object.title = u"[私訊]" + user_name + ":" + self.object.title
     self.object.author_id = self.request.user.id
     self.object.save()
     self.object.url = "/account/line/detail/" + self.kwargs[
         'classroom_id'] + "/" + str(self.object.id)
     self.object.classroom_id = 0 - int(self.kwargs['classroom_id'])
     self.object.save()
     # 訊息
     messagepoll = MessagePoll(message_id=self.object.id,
                               reader_id=self.kwargs['user_id'],
                               classroom_id=0 -
                               int(self.kwargs['classroom_id']))
     messagepoll.save()
     return redirect("/account/line/" + self.kwargs['classroom_id'])
コード例 #9
0
ファイル: views.py プロジェクト: jeankao/scratch_old
 def form_valid(self, form):
     self.object = form.save(commit=False)
     user_name = User.objects.get(id=self.request.user.id).first_name
     self.object.title = u"[私訊]" + user_name + ":" + self.object.title
     self.object.author_id = self.request.user.id
     self.object.save()
     self.object.url = "/account/line/detail/" + str(self.object.id)
     self.object.classroom_id = 0 - int(self.kwargs['classroom_id'])
     self.object.save()
     # 訊息
     messagepoll = MessagePoll(message_id=self.object.id, reader_id=self.kwargs['user_id'], classroom_id=0-int(self.kwargs['classroom_id']))
     messagepoll.save()
     # 記錄系統事件
     if is_event_open(self.request) :            
         log = Log(user_id=self.request.user.id, event=u'新增私訊<'+self.object.title+'>')
         log.save()                
     return redirect("/account/line/"+self.kwargs['classroom_id'])       
コード例 #10
0
ファイル: views.py プロジェクト: jeankao/scratch_old
 def form_valid(self, form):
     self.object = form.save(commit=False)
     self.object.title = u"[公告]" + self.object.title
     self.object.author_id = self.request.user.id
     self.object.classroom_id = self.kwargs['classroom_id']
     self.object.save()
     self.object.url = "/teacher/announce/detail/" + str(self.object.id)
     self.object.save()
     # 班級學生訊息
     enrolls = Enroll.objects.filter(classroom_id=self.kwargs['classroom_id'])
     for enroll in enrolls:
         messagepoll = MessagePoll(message_id=self.object.id, reader_id=enroll.student_id)
         messagepoll.save()
     # 記錄系統事件
     if is_event_open(self.request) :            
         log = Log(user_id=self.request.user.id, event=u'新增公告<'+self.object.title+'>')
         log.save()                
     return redirect("/teacher/announce/"+self.kwargs['classroom_id'])       
コード例 #11
0
 def form_valid(self, form):
     self.object = form.save(commit=False)
     self.object.title = u"[公告]" + self.object.title
     self.object.author_id = self.request.user.id
     self.object.classroom_id = self.kwargs['classroom_id']
     self.object.save()
     self.object.url = "/teacher/announce/detail/" + str(self.object.id)
     self.object.save()
     # 班級學生訊息
     enrolls = Enroll.objects.filter(
         classroom_id=self.kwargs['classroom_id'])
     for enroll in enrolls:
         messagepoll = MessagePoll(message_id=self.object.id,
                                   reader_id=enroll.student_id)
         messagepoll.save()
     # 記錄系統事件
     if is_event_open(self.request):
         log = Log(user_id=self.request.user.id,
                   event=u'新增公告<' + self.object.title + '>')
         log.save()
     return redirect("/teacher/announce/" + self.kwargs['classroom_id'])
コード例 #12
0
def make_image(lesson, unit, enroll_id, teacher_id):
    ''' A View that Returns a PNG Image generated using PIL'''
    im = Image.open(settings.BASE_DIR+'/static/certificate/certificate'+lesson+"_"+unit+'.jpg') # create the image
    draw = ImageDraw.Draw(im)   # create a drawing object that is
                                # used to draw on the new image
    #red = (255,0,0)    # color of our text
    #text_pos = (10,10) # top-left position of our text
    # Now, we'll do the drawing: 
    font_student = ImageFont.truetype(settings.BASE_DIR+'/static/cwTeXQKai-Medium.ttf',60)
    font_school = ImageFont.truetype(settings.BASE_DIR+'/static/cwTeXQKai-Medium.ttf',30)		
    font_teacher = ImageFont.truetype(settings.BASE_DIR+'/static/cwTeXQKai-Medium.ttf',50)    
    font_date = ImageFont.truetype(settings.BASE_DIR+'/static/cwTeXQKai-Medium.ttf',50)  		
    enroll = Enroll.objects.get(id=enroll_id)
    #studnet_id = enroll.student.id
    student_name = User.objects.get(id=enroll.student.id).first_name
    school_name = u"認證教師:"+School.objects.get(id=User.objects.get(id=teacher_id).last_name).name  
    lesson_name = "高慧君老師"
    teacher_name = User.objects.get(id=teacher_id).first_name+u"老師"
    year = timezone.localtime(timezone.now()).year
    month = timezone.localtime(timezone.now()).month
    day = timezone.localtime(timezone.now()).day
    date_name = "中 華 民 國 "+ str(year-1911) + " 年 "+ str(month) + " 月 " + str(day) + " 日"
    student = smart_text(student_name, encoding='utf-8', strings_only=False, errors='strict')
    school = smart_text(school_name, encoding='utf-8', strings_only=False, errors='strict')		
    lesson_name = smart_text(lesson_name, encoding='utf-8', strings_only=False, errors='strict')			
    teacher = smart_text(teacher_name, encoding='utf-8', strings_only=False, errors='strict')
    date_string = smart_text(date_name, encoding='utf-8', strings_only=False, errors='strict')		
    draw.text((450,160), student,(0,0,200),font=font_student)		
    draw.text((500,440), teacher,(0,0,0),font=font_teacher)
    draw.text((490,405), school_name,(0,0,0),font=font_school)		
    draw.text((160,520), date_string ,(0,0,0),font=font_date)    
    del draw # I'm done drawing so I don't need this anymore
    
    # We need an HttpResponse object with the correct mimetype
    #response = HttpResponse(content_type = "image/jpeg")
    #im.save(response, 'jpeg')
    #return response
    # now, we tell the image to save as a PNG to the 
    # provided file-like object
    
    temp_handle = StringIO.StringIO()
    im.save(temp_handle, 'jpeg')
    temp_handle.seek(0)
    
    # open file write mode  
    if not os.path.exists(settings.BASE_DIR+"/static/certification/"):
        os.mkdir(settings.BASE_DIR+"/static/certification/")    
    if not os.path.exists(settings.BASE_DIR+"/static/certification/"+lesson):
        os.mkdir(settings.BASE_DIR+"/static/certification/"+lesson)
    if not os.path.exists(settings.BASE_DIR+"/static/certification/"+lesson+"/"+unit):
        os.mkdir(settings.BASE_DIR+"/static/certification/"+lesson+"/"+unit) 
    context = {'error':''}
    fileName = settings.BASE_DIR+"/static/certification/"+lesson+"/"+unit+"/"+enroll_id+".jpg"
    writeFile(temp_handle.read(), fileName, context)

    #update and message
    title = "<" + teacher_name + u">核發了一張證書給你"
    #title = smart_text(teacher_name+"--核發了一張證書給你", encoding='utf-8', strings_only=False, errors='strict')
    url = "/certificate/show/" + lesson + "/" + unit + "/" + enroll_id
    message = Message.create(title=title, url=url, time=timezone.now())
    message.save()
        
    messagepoll = MessagePoll(reader_id=enroll.student.id, message_id = message.id)
    messagepoll.save()
コード例 #13
0
def student_login(request):
    message = None
    test = ""
    if request.method == "POST":
        form = StudentLoginForm(request.POST)
        if form.is_valid():
            username = request.POST['teacher'] + "_" + request.POST['username']
            password = request.POST['password']
            user = authenticate(username=username, password=password)
            if user is not None:
                if user.is_active:
                    # 登入成功,導到大廳
                    login(request, user)
                    # 記錄訪客資訊
                    admin_user = User.objects.get(id=1)
                    try:
                        profile = Profile.objects.get(user=admin_user)
                    except ObjectDoesNotExist:
                        profile = Profile(user=admin_user)
                        profile.save()
                    profile.visitor_count = profile.visitor_count + 1
                    profile.save()
                    try:
                        profile = Profile.objects.get(user=user)
                    except ObjectDoesNotExist:
                        profile = Profile(user=user)
                        profile.save()
                        # create Message
                        title = "請洽詢任課教師課程名稱及選課密碼"
                        url = "/student/classroom/add"
                        message = Message.create(title=title,
                                                 url=url,
                                                 time=timezone.now())
                        message.save()

                        # message for group member
                        messagepoll = MessagePoll(message_id=message.id,
                                                  reader_id=user.id)
                        messagepoll.save()
                    profile.visitor_count = profile.visitor_count + 1
                    profile.save()

                    year = localtime(timezone.now()).year
                    month = localtime(timezone.now()).month
                    day = localtime(timezone.now()).day
                    date_number = year * 10000 + month * 100 + day
                    try:
                        visitor = Visitor.objects.get(date=date_number)
                    except ObjectDoesNotExist:
                        visitor = Visitor(date=date_number)
                    visitor.count = visitor.count + 1
                    visitor.save()

                    visitorlog = VisitorLog(visitor_id=visitor.id,
                                            user_id=user.id,
                                            IP=request.META.get('REMOTE_ADDR'))
                    visitorlog.save()

                    return redirect('/account/0')
                else:
                    message = "Your user is inactive"
            else:
                message = "無效的帳號或密碼!"
    else:
        form = StudentLoginForm()
    return render(request, 'account/student_login.html', {
        'test': test,
        'message': message,
        'form': form
    })
コード例 #14
0
def user_login(request, role):
    message = None
    test = ""
    if request.method == "POST":
        if role == "0":
            form = LoginForm(request.POST)
        else:
            form = LoginStudentForm(request.POST)
        if form.is_valid():
            teacher = request.POST['teacher']
            username = request.POST['username']
            password = request.POST['password']
            if role == "0":
                user = authenticate(username=username, password=password)
            else:
                user = authenticate(username=teacher + "_" + username,
                                    password=password)
            if user is not None:
                if user.is_active:
                    if user.id == 1:
                        zones = Zone.objects.all()
                        if len(zones) == 0:
                            for city_name, zones, mapx, mapy in county:
                                city = County(name=city_name,
                                              mapx=mapx,
                                              mapy=mapy)
                                city.save()
                                for zone_name in zones:
                                    zone = Zone(name=zone_name, county=city.id)
                                    zone.save()
                            school = School(county=1,
                                            zone=9,
                                            system=3,
                                            name="南港高中")
                            school.save()
                            user.last_name = "1"
                            user.save()
                        if user.first_name == "":
                            user.first_name = "管理員"
                            user.save()
                            try:
                                group = Group.objects.get(name="apply")
                            except ObjectDoesNotExist:
                                group = Group(name="apply")
                                group.save()
                            group.user_set.add(user)
                            # create Message
                            title = "請修改您的姓名"
                            url = "/account/realname"
                            message = Message(title=title,
                                              url=url,
                                              time=timezone.now())
                            message.save()

                            # message for group member
                            messagepoll = MessagePoll(message_id=message.id,
                                                      reader_id=1)
                            messagepoll.save()
                    # 記錄訪客資訊
                    admin_user = User.objects.get(id=1)
                    try:
                        profile = Profile.objects.get(user=admin_user)
                    except ObjectDoesNotExist:
                        profile = Profile(user=admin_user)
                        profile.save()
                    profile.visitor_count = profile.visitor_count + 1
                    profile.save()

                    year = localtime(timezone.now()).year
                    month = localtime(timezone.now()).month
                    day = localtime(timezone.now()).day
                    date_number = year * 10000 + month * 100 + day
                    try:
                        visitor = Visitor.objects.get(date=date_number)
                    except ObjectDoesNotExist:
                        visitor = Visitor(date=date_number)
                    except MultipleObjectsReturned:
                        visitor = Visitor.objects.filter(date=date_number)[0]
                    visitor.count = visitor.count + 1
                    visitor.save()

                    visitorlog = VisitorLog(visitor_id=visitor.id,
                                            user_id=user.id,
                                            IP=request.META.get('REMOTE_ADDR'))
                    visitorlog.save()
                    # 登入成功,導到大廳
                    login(request, user)
                    return redirect('/account/dashboard/0')
                else:
                    message = "帳號未啟用!"
            else:
                message = "無效的帳號或密碼!"
    else:
        if role == "0":
            form = LoginForm()
        else:
            form = LoginStudentForm()
    return render(request, 'registration/login.html', {
        'role': role,
        'message': message,
        'form': form
    })