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']))
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'])
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/")
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("/")
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)
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
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
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'])
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'])
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'])
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'])
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()
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 })
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 })