def get_list_video_material_of_subject(self,tutor,page): list_subject = subject_management().get_all_subjects() list_list_vm = [] for s in list_subject: list_vm = self.get_list_video_material(tutor,s.key(),page) list_list_vm.append(list_vm) return list_list_vm
def get(self): user = self.get_user_type() if user == user_type.visitor: return 0 elif user == user_type.student: type = self.request.get('type', None) subject = subject_management().get_subject_by_name( 'Programacion Orientada a Objetos') subject_units = unit_management().get_all_units_of_subject( subject.key()) list_units = [] for unit in subject_units: uinfo = {} uinfo['name'] = unit.name uinfo['id'] = unit.key().id() list_units.append(uinfo) template_values = { "list_units": list_units, "type": type, "subject": subject.name, "user": "******" } self.response.write( subject_content_template.render(template_values)) return 1 elif user == user_type.tutor: return 2 else: return 3
def get(self): user = self.get_user_type() if user == user_type.visitor: self.redirect('/') return 0 elif user == user_type.student: self.redirect('/home') return 1 elif user == user_type.tutor: subject = subject_management().get_subject_by_name( 'Programacion Orientada a Objetos') list_units = unit_management().get_all_units_of_subject( subject.key()) template_values = { 'list_units': list_units, 'upload_url': blobstore.create_upload_url('/upload_exam') } self.response.write(template.render(template_values)) return 2 else: self.redirect('/') return 3
def get_subjects_available_videos(self,page): list_subject = subject_management().get_all_subjects() list_list_vm = [] for s in list_subject: list_vm = video_material_model().get_subject_available_videos(s.key(),page) list_list_vm.append(list_vm) return list_list_vm
def get_list_video_material_of_subject(self, tutor, page): list_subject = subject_management().get_all_subjects() list_list_vm = [] for s in list_subject: list_vm = self.get_list_video_material(tutor, s.key(), page) list_list_vm.append(list_vm) return list_list_vm
def get_subjects_available_videos(self, page): list_subject = subject_management().get_all_subjects() list_list_vm = [] for s in list_subject: list_vm = video_material_model().get_subject_available_videos( s.key(), page) list_list_vm.append(list_vm) return list_list_vm
def get(self): user = self.get_user_type() if user == user_type.visitor: self.redirect('/') return 0 elif user == user_type.student: self.redirect('/home') return 1 elif user == user_type.tutor: id_exam = int(self.request.get('exam_id',None)) exam = exam_management().find_exam(id_exam) name = exam.name level = exam.level learning_type = exam.learning_type unit = exam.unit topic = exam.topic subject = subject_management().get_subject_by_name('Programacion Orientada a Objetos') list_units = unit_management().get_all_units_of_subject(subject.key()) list_questions = [] for q in exam.questions: q=exam_management().find_question(q.id()) list_questions.append(q) len_questions = len(list_questions) template_values={'name':name, 'level':level, 'learning_type':learning_type, 'unit':unit, 'topic':topic, 'list_questions':list_questions, 'len_questions':len_questions, 'id_exam':id_exam, 'list_units':list_units, 'upload_url':blobstore.create_upload_url('/upload_exam') } self.response.write(template.render(template_values)) return 2 else: self.redirect('/') return 3
def post(self): user = self.get_user_type() if user == user_type.visitor: self.redirect('/') elif user == user_type.student: self.redirect('/') elif user == user_type.tutor: if not 'video_material_id' in self.session: self.session['video_material_id'] = None if not 'extension' in self.session: self.session['extension'] = None if not 'size' in self.session: self.session['size'] = None title = self.request.get('title',None) description = self.request.get('description',None) level = int(self.request.get('level',None)) unit_id = self.request.get('unit',None) subject = subject_management().get_subject_by_name('Programacion Orientada a Objetos') if unit_id: unit_id = int(unit_id) topic = title tags = self.request.get_all('tags',None) tutor_key = tutor_management().get_tutor(self.session['user-id']).key() video_material_id = self.request.get('video_material_id',None) if video_material_id: video_material_id = int(video_material_id) video_material_instance = video_material_management().get_video_material(video_material_id) topic_ins = topic_management().get_topic(video_material_instance.topic.key().id()) topic_management().modify(subject.key(),topic_ins.key(),topic) video_ins = video_management().get_video(video_material_instance.video.key().id()) video_management().modify(video_ins.key(),description,video_ins.size) video_material_management().modify(video_material_instance.key(),video_ins.key(),level,unit_id,subject.key(),topic_ins.key(),tags,tutor_key) else: size = self.session['size'] self.session['size'] = None size = int(size) duration = self.request.get('duration',None) ext_format = self.session['extension'] #size = self.request.get('size',None) topic_key = topic_management().add(subject.key(),topic) video_id = int(self.session['video-id']) self.session['video-id'] = None video_instance = video_management().get_video(video_id) video_key = video_management().add(video_instance.key(),description,duration,ext_format,size,0) video_material_management().add(video_key,level,unit_id,subject.key(),topic_key,tags,tutor_key) sleep(0.1) self.redirect('/admin_video') else: self.redirect('/')
def get_list_video_material_of_one_subject_unit(self, tutor, subject, unit, page): s = subject_management().get_subject(subject.id()) u = unit_management().get_unit(unit.id()) return self.get_list_video_material_unit(tutor, s.key(), u.key(), page)
def get_list_text_material_of_one_subject(self, tutor, subject, page): s = subject_management().get_subject(subject.id()) return self.get_list_text_material(tutor, s.key(), page)
def get_list_exam_material_of_one_subject(self,tutor,subject,page): s = subject_management().get_subject(subject.id()) return exam_model().get_list_exam_material(tutor,s.key(),page,10)
def get(self): user = self.get_user_type() if user == user_type.visitor: self.redirect('/') return 0 elif user == user_type.student: self.redirect('/explorer') return 1 elif user == user_type.tutor: page = 1 list_list_texts = [] tutor_id = self.session['user-id'] tutor_key = tutor_management().get_tutor(tutor_id).key() tutor_instance = tutor_management().get_tutor(tutor_id) index = 0 list_list_text_info = [] countent = {} list_counter = [] list_content = [] self.list_list_vm = text_material_management().get_list_text_material_of_subject(tutor_key,page) for index in range(len(self.list_list_vm)): list_texts = [] counter = {} content = {} if self.list_list_vm[index]: counter['subject'] = (subject_management().get_subject(self.list_list_vm[index][0].subject.key().id())).name counter['total-text'] = text_material_management().get_all_texts_material(tutor_key,self.list_list_vm[index][0].subject.key(),page) for subindex in range(len(self.list_list_vm[index])): vm = self.list_list_vm[index][subindex] text_instance = text_material_management().get_text(vm) vinfo = {} vinfo['id'] = vm.key().id() if vm.available == True: vinfo['able'] = '<i class="fa fa-pencil-square-o"></i> Deshabilitar' else: vinfo['able'] = '<i class="fa fa-pencil-square-o"></i> Habilitar' vinfo['tutor'] = (tutor_management().get_tutor(vm.tutor.key().id())).first vinfo['topic'] = (topic_management().get_topic(vm.topic.key().id())).name vinfo['content'] = text_instance.content vinfo['number_views'] = text_instance.number_views list_texts.append(vinfo) index = index + 1 counter['index'] = index list_counter.append(copy.deepcopy(counter)) list_list_text_info.append(list_texts) self.response.write(self.list_list_vm) html = '' for i in range(len(list_list_text_info)): html += '<div class="block" id="num'+str(i)+'"><div class="head"><i class="fa fa-book"></i> <span class="subject">'+str(list_counter[i]['subject'])+'</span><small> ('+str(len(list_counter[i]['total-text']))+' texts)</small><span class="toggle"><i class="fa fa-caret-square-o-up"></i> Ocultar Materia</span></div>' for j in range(len(list_list_text_info[i])): html +='\ \ <a class="videor" href="view_text?text_material_id='+str(list_list_text_info[i][j]['id'])+'" alt="'+str(list_list_text_info[i][j]['topic'])+'">\ <div class="video" id="'+str(list_list_text_info[i][j]['id'])+'">\ <div class="bimg" style="background:url(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS67YRkacb2A7x0mniuG1SUXllu22UOKOGYfJwARDWeZl8SyZQpfg);background-size:cover;background-position:center;">\ <div class="remove" id="'+str(list_list_text_info[i][j]['id'])+'">'+str(list_list_text_info[i][j]['able'])+'</div>\ <div class="views">\ <i class="fa fa-eye"></i> '+str(list_list_text_info[i][j]['number_views'])+'\ </div>\ </div>\ <div class="about">\ <h2>'+str(list_list_text_info[i][j]['topic'])+'</h2>\ <small>por '+str(list_list_text_info[i][j]['tutor'])+'</small>\ </div>\ </div>\ </a> ' if len(list_counter[i]['total-text']) > 6: html += '<div class="more"><i class="fa fa-refresh"></i> Mostrar mas</div>' html += '</div>' template_values={ "user":"******", "header_welcome":"", "header_tutor":"", "list_list_texts": list_list_text_info, "counter":list_counter, "html":html, "tutor_name": tutor_instance.first } self.response.write(template.render(template_values)) return 2 else: template_values = { } self.response.write(template.render(template_values)) return 3
def get_list_exam_material(self, tutor, subject, page): s = subject_management().get_subject(subject.id()) return tutor_model().get_list_exam_material(tutor, s.key(), page, 10)
def post(self): user = self.get_user_type() if user == user_type.visitor: return 0 elif user == user_type.student: return 1 elif user == user_type.tutor: available = self.request.get('available',None) page = self.request.get('vm_page',None) if available: vm_id = self.request.get('vm_id',None) video_material_management().make_available(int(vm_id)) if page: page = int(page) list_list_videos = [] tutor_id = self.session['user-id'] tutor_key = tutor_management().get_tutor(tutor_id).key() subject_instance = subject_management().find_name(self.request.get('vm_subject')) index = 0 list_videos = [] list_vm = video_material_management().get_list_video_material(tutor_key,subject_instance.key(),page) if list_vm: for index in range(len(list_vm)): vm = list_vm[index] video_instance = video_material_management().get_video(vm) vinfo = {} vinfo['id'] = vm.key().id() if vm.available == True: vinfo['able'] = '<i class="fa fa-pencil-square-o"></i> Deshabilitar' else: vinfo['able'] = '<i class="fa fa-pencil-square-o"></i> Habilitar' vinfo['tutor'] = (tutor_management().get_tutor(vm.tutor.key().id())).first vinfo['topic'] = (topic_management().get_topic(vm.topic.key().id())).name vinfo['content'] = video_instance.content vinfo['number_views'] = video_instance.number_views list_videos.append(vinfo) html = "" for v in list_videos: html += '\ \ <a class="videor" href="view_video?video_material_id='+str(v['id'])+'" alt="'+str(v['topic'])+'">\ <div class="video" id="'+str(v['id'])+'">\ <div class="bimg" style="background:url(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS67YRkacb2A7x0mniuG1SUXllu22UOKOGYfJwARDWeZl8SyZQpfg);background-size:cover;background-position:center;">\ <div class="remove" id="'+str(v['id'])+'">'+str(v['able'])+'</div>\ <div class="views">\ <i class="fa fa-eye"></i> '+str(v['number_views'])+'\ </div>\ </div>\ <div class="about">\ <h2>'+str(v['topic'])+'</h2>\ <small>por '+str(v['tutor'])+'</small>\ </div>\ </div>\ </a> ' self.response.write(html) return 2 else: return 3
def get(self): user = self.get_user_type() if user == user_type.visitor: self.redirect('/') elif user == user_type.student: text_material_id = self.request.get('text_material_id',None) if not text_material_id: self.redirect('/explorer') text_instance = None text_material_instance = None text_material_id = int(text_material_id) if text_material_id: text_material_instance = text_material_management().get_text_material(text_material_id) if not text_material_instance: self.redirect('/explorer') else: student_instance = student_management().find_key(self.session['user-id']) text_instance = text_material_management().get_text(text_material_instance) text_management().update_number_views(text_instance) list_tag_text_supported = ['pdf'] list_tag_embedded_supported = ['pdf'] #list_tag_object_supported = ['swf'] tformat = text_instance.ext_format tinfo = {} tinfo['format'] = tformat tinfo['tutor'] = (tutor_management().get_tutor(text_material_instance.tutor.key().id())).first tinfo['topic'] = (topic_management().get_topic(text_material_instance.topic.key().id())).name tinfo['content'] = text_instance.content tinfo['subject'] = (subject_management().get_subject(text_material_instance.subject.key().id())).name tinfo['description'] = text_instance.description tinfo['tags'] = text_material_instance.tags template_values={ "user":"******", "header_welcome":"", "header_tutor":"", "tinfo":tinfo, 'embbeded_supported':list_tag_embedded_supported, 'text_supported':list_tag_text_supported, "student_name":student_instance.first #"object_supported":list_tag_object_supported } self.response.write(viewtext_template.render(template_values)) elif user == user_type.tutor: text_material_id = int(self.request.get('text_material_id')) text_instance = None text_material_instance = None if text_material_id: text_material_instance = text_material_management().get_text_material(text_material_id) if not text_material_instance: self.redirect('/home') else: tutor_id = self.session['user-id'] tutor_key = tutor_management().get_tutor(tutor_id).key() tutor_instance = tutor_management().get_tutor(tutor_id) text_instance = text_material_management().get_text(text_material_instance) list_text_supported = ['pdf'] tformat = text_instance.ext_format #list_tag_object_supported = ['swf'] tinfo = {} tinfo['format'] = tformat tinfo['tutor'] = (tutor_management().get_tutor(text_material_instance.tutor.key().id())).first tinfo['topic'] = (topic_management().get_topic(text_material_instance.topic.key().id())).name tinfo['content'] = text_instance.content tinfo['subject'] = (subject_management().get_subject(text_material_instance.subject.key().id())).name tinfo['description'] = text_instance.description tinfo['tags'] = text_material_instance.tags #blob_info = BlobInfo.get(text_instance.content.key()) template_values={ "user":"******", "header_welcome":"", "header_tutor":"", "tinfo":tinfo, "tutor_name": tutor_instance.first, #"object_supported":list_tag_object_supported } #self.response.headers['Content-Type'] = 'video/avi' self.response.write(viewtext_template.render(template_values)) else: self.redirect('/home')
def get_list_text_material_of_one_subject_unit(self,tutor,subject,unit,page): s = subject_management().get_subject(subject.id()) u = unit_management().get_unit(unit.id()) return self.get_list_text_material_unit(tutor,s.key(),u.key(),page)
def get(self): user = self.get_user_type() if user == user_type.visitor: self.redirect('/') return 0 elif user == user_type.student: #self.response.headers['Content-Type'] = 'text/html' classification = self.request.get('classification',None) student_instance = student_management().find_key(self.session['user-id']) page = 1 list_list_texts = [] index = 0 list_list_text_info = [] list_list_counter = [] countent = {} list_counter = [] list_content = [] i = 0 list_list_tm = text_material_management().get_subjects_available_texts(page) for index in range(len(list_list_tm)): list_texts = [] counter = {} content = {} if list_list_tm[index]: counter['tutorid'] = '' counter['class'] = 'subject' counter['title'] = (subject_management().get_subject(list_list_tm[index][0].subject.key().id())).name counter['total-text'] = text_material_management().get_all_subject_available_texts(list_list_tm[index][0].subject.key(),page) for subindex in range(len(list_list_tm[index])): tm = list_list_tm[index][subindex] text_instance = text_material_management().get_text(tm) tinfo = {} tinfo['id'] = tm.key().id() if tm.available == True: tinfo['able'] = 'Deshabilitar' else: tinfo['able'] = 'Habilitar' tinfo['tutor'] = (tutor_management().get_tutor(tm.tutor.key().id())).first tinfo['topic'] = (topic_management().get_topic(tm.topic.key().id())).name tinfo['content'] = text_instance.content tinfo['number_views'] = text_instance.number_views list_texts.append(tinfo) index = index + 1 counter['index'] = index list_counter.append(copy.deepcopy(counter)) list_list_text_info.append(list_texts) list_list_tm = text_material_management().get_tutors_available_texts(page) x = 2 for index in range(len(list_list_tm)): list_texts = [] counter = {} content = {} if list_list_tm[index]: counter['tutorid'] = list_list_tm[index][0].tutor.key().id() counter['class'] = 'tutor' counter['title'] = (tutor_management().find_key(list_list_tm[index][0].tutor.key().id())).first counter['total-text'] = text_material_management().get_all_tutor_available_texts(list_list_tm[index][0].tutor.key(),page) for subindex in range(len(list_list_tm[index])): tm = list_list_tm[index][subindex] text_instance = text_material_management().get_text(tm) tinfo = {} tinfo['id'] = tm.key().id() if tm.available == True: tinfo['able'] = 'Deshabilitar' else: tinfo['able'] = 'Habilitar' tinfo['tutor'] = (tutor_management().get_tutor(tm.tutor.key().id())).first tinfo['topic'] = (topic_management().get_topic(tm.topic.key().id())).name tinfo['content'] = text_instance.content tinfo['number_views'] = text_instance.number_views list_texts.append(tinfo) index = index + 1 counter['index'] = index list_counter.append(copy.deepcopy(counter)) list_list_text_info.append(list_texts) new_list_counter = [] l = [] c = 0 for i in range(len(list_counter)): c = 0 l = list_counter[i]['total-text'] new_counter = {} for j in range(len(l)): if l[j].available: c+=1 # for j in range(len(list_counter[i])): # if list_counter[i][j]['total-text'].available: # c += 1 new_counter['num_texts'] = c new_list_counter.append(copy.deepcopy(new_counter)) html = '' for i in range(len(list_list_text_info)): if x==2: html += '<div class="block '+str(list_counter[i]['class'])+'" data-tutor-id="'+str(list_counter[i]['tutorid'])+'" id="num'+str(i)+'"><div class="head"><i class="fa fa-book"></i> <span class="subject">'+str(list_counter[i]['title'])+'</span><small> ('+str(new_list_counter[i]['num_texts'])+' texts)</small><span class="toggle"><i class="fa fa-caret-square-o-up"></i> Ocultar Materia</span></div>' else: html += '<div class="block '+str(list_counter[i]['class'])+'" id="num'+str(i)+'"><div class="head"><i class="fa fa-book"></i> <span class="subject">'+str(list_counter[i]['title'])+'</span><small> (# texts)</small><span class="toggle"><i class="fa fa-caret-square-o-up"></i> Ocultar Materia</span></div>' for j in range(len(list_list_text_info[i])): html +='\ <a class="textr" href="view_text?text_material_id='+str(list_list_text_info[i][j]['id'])+'" alt="'+str(list_list_text_info[i][j]['topic'])+'">\ <div class="text" id="'+str(list_list_text_info[i][j]['id'])+'">\ <div class="bimg" style="background:url(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS67YRkacb2A7x0mniuG1SUXllu22UOKOGYfJwARDWeZl8SyZQpfg);background-size:cover;background-position:center;">\ <div class="views">\ <i class="fa fa-eye"></i> '+str(list_list_text_info[i][j]['number_views'])+'\ </div>\ </div>\ <div class="about">\ <h2>'+str(list_list_text_info[i][j]['topic'])+'</h2>\ <small>por '+str(list_list_text_info[i][j]['tutor'])+'</small>\ </div>\ </div>\ </a> ' # if len(list_counter[i]['total-text']) > 6: if new_list_counter[i]['num_texts'] > 6: html += '<div class="more"><i class="fa fa-refresh"></i> Mostrar mas</div>' html += '</div>' template_values={ "user":"******", "header_welcome":"", "header_tutor":"", "list_list_texts": list_list_text_info, "counter":list_counter, "html":html, "student_name":student_instance.first } self.response.write(explorer_template.render(template_values)) return 1 elif user == user_type.tutor: self.redirect('/home') return 2 else: self.redirect('/home') return 3
def get(self): user = self.get_user_type() if user == user_type.visitor: self.redirect('/') elif user == user_type.student: if not 'text-id' in self.session: self.session['text-id'] = None text_content = '' if self.session['text-id'] == None: self.redirect('/home') try: text_id = int(self.session['text-id']) text_instance = text_management().get_text(text_id) text_content = text_instance.content except ValueError: text_content = '' except TypeError: text_id = 0 template_values={ "user":"******", "header_welcome":"", "header_user":"", "text_content":text_content } self.response.write(data_text_template.render(template_values)) elif user == user_type.tutor: text_material_id = self.request.get('text_material_id',None) if not 'text-id' in self.session: self.session['text-id'] = None if not 'name_file' in self.session: self.session['name_file'] = None if not 'name_file' in self.session: self.session['extension'] = None if self.session['text-id'] == None and self.session['name_file'] == None and text_material_id is None: self.redirect('/home') text_format_allowed = ['pdf'] tutor_id = self.session['user-id'] tutor_key = tutor_management().get_tutor(tutor_id).key() tutor_instance = tutor_management().get_tutor(tutor_id) if text_material_id: text_material_id = int(text_material_id) text_material_instance = text_material_management().get_text_material(text_material_id) text_instance = text_material_management().get_text(text_material_instance) tinfo = {} tinfo['topic'] = text_material_instance.topic tinfo['description'] = text_instance.description tinfo['level'] = text_material_instance.level tinfo['tags'] = text_material_instance.tags text_content = text_instance.content subject = subject_management().get_subject_by_name('Programacion Orientada a Objetos') subject_units = unit_management().get_all_units_of_subject(subject.key()) list_units = [] for unit in subject_units: uinfo = {} uinfo['name'] = unit.name uinfo['id'] = unit.key().id() list_units.append(uinfo) template_values = { "user":"******", "tinfo":tinfo, "edit":True, "text_content":text_content, "list_units":list_units, "name_file":self.session['name_file'], "tutor_name": tutor_instance.first, "text_material_id":text_material_id } else: text_content = '' try: text_id = int(self.session['text-id']) text_instance = text_management().get_text(text_id) text_content = text_instance.content except ValueError: text_content = '' except TypeError: text_id = 0 subject = subject_management().get_subject_by_name('Programacion Orientada a Objetos') subject_units = unit_management().get_all_units_of_subject(subject.key()) list_units = [] for unit in subject_units: uinfo = {} uinfo['name'] = unit.name uinfo['id'] = unit.key().id() list_units.append(uinfo) template_values={ "user":"******", "header_welcome":"", "edit":False, "header_tutor":"", "text_content":text_content, "list_units":list_units, "name_file":self.session['name_file'], "tutor_name": tutor_instance.first, "text_material_id":"" } self.response.write(data_text_template.render(template_values)) else: self.redirect('/')
def get(self): user = self.get_user_type() if user == user_type.visitor: self.redirect('/') return 0 elif user == user_type.student: tutor_id = self.session['user-id'] student_instance = student_management().get_student(int(self.session['user-id'])) tutor = tutor_management().get_tutor(5066549580791808) subject = subject_management().get_subject_by_name('Programacion Orientada a Objetos') page = self.request.get('page',0) unit_id = self.request.get('unit_id',None) if unit_id: unit_id = int(unit_id) else: ##id de 1era unidad unit_id = 5750892489867264 page = self.request.get('page',0) try: int(page) page = int(page)-1 except ValueError: page = 0 if page < 1: page = 0 index = 0 unit = unit_management().get_unit(unit_id) list_list_text_info = [] countent = {} list_counter = [] list_content = [] list_all_exams = exam_management().get_all_unit_available_exams(unit.key()) list_em = exam_management().get_unit_available_exams(unit.key(),page) list_exams = [] if list_em: #total_text = text_material_management().get_all_texts_material(tutor_key,self.list_list_tm[index][0].subject.key(),page) for index in range(len(list_em)): em = list_em[index] exam_instance = exam_management().find_exam(em.key().id()) einfo = {} einfo['id'] = em.key().id() einfo['able'] = em.available einfo['tutor'] = (tutor_management().get_tutor(em.user.key().id())).first einfo['topic'] = em.topic #einfo['content'] = exam_instance.content #einfo['number_views'] = exam_instance.number_views #einfo['description'] = exam_instance.description list_exams.append(einfo) index = index + 1 html = '' pages = int(ceil(len(list_all_exams)/10.)) if pages < 1: pages = 1 list_page = [None] * pages template_values={ "user":"******", "header_welcome":"", "header_tutor":"", "total_pages":len(list_page), "current_page":(page+1), "list_exams": list_exams, "pages":list_page, #Agregado "unit_id":unit_id, "Titulo":"Gestion de Textos", "counter":list_counter, "html":html, "subject":subject.name, "student_name": student_instance.first } self.response.write(admin_exam_template.render(template_values)) return 1 elif user == user_type.tutor: tutor_id = self.session['user-id'] tutor_key = tutor_management().get_tutor(tutor_id).key() tutor_instance = tutor_management().get_tutor(tutor_id) subject = subject_management().get_subject_by_name('Programacion Orientada a Objetos') page = self.request.get('page',0) try: int(page) page = int(page)-1 except ValueError: page = 0 if page < 1: page = 0 index = 0 list_list_text_info = [] countent = {} list_counter = [] list_content = [] listi = tutor_management().find_all_exams_subject(tutor_key,subject.key()) #self.list_list_tm = text_material_management().get_list_text_material_of_subject(tutor_key,page) list_em = tutor_management().find_all_exams(tutor_key,subject.key(),page) c=0 list_exams = [] total_em = 0 if list_em: #total_text = text_material_management().get_all_texts_material(tutor_key,self.list_list_tm[index][0].subject.key(),page) for index in range(len(list_em)): em = list_em[index] exam_instance = exam_management().find_exam(em.key().id()) einfo = {} einfo['id'] = em.key().id() einfo['able'] = em.available einfo['tutor'] = (tutor_management().get_tutor(em.user.key().id())).first einfo['topic'] = em.topic ''' einfo['content'] = exam_instance.content einfo['number_views'] = exam_instance.number_views einfo['description'] = exam_instance.description ''' list_exams.append(einfo) index = index + 1 html = '' pages = int(ceil(len(listi)/10.)) if pages < 1: pages = 1 list_page = [None] * pages template_values={ "user":"******", "header_welcome":"", "header_tutor":"", "total_pages":len(list_page), "current_page":(page+1), "list_exams": list_exams, "subject":subject.name, "pages":list_page, "Titulo":"Gestion de Examenes", "counter":list_counter, "tutor_name": tutor_instance.first } self.response.write(admin_exam_template.render(template_values)) return 2 else: return 3
def get(self): user = self.get_user_type() if user == user_type.visitor: self.redirect('/') return 0 elif user == user_type.student: self.redirect('/explorer') return 1 elif user == user_type.tutor: page = 1 list_list_texts = [] tutor_id = self.session['user-id'] tutor_key = tutor_management().get_tutor(tutor_id).key() tutor_instance = tutor_management().get_tutor(tutor_id) index = 0 list_list_text_info = [] countent = {} list_counter = [] list_content = [] self.list_list_vm = text_material_management( ).get_list_text_material_of_subject(tutor_key, page) for index in range(len(self.list_list_vm)): list_texts = [] counter = {} content = {} if self.list_list_vm[index]: counter['subject'] = (subject_management().get_subject( self.list_list_vm[index][0].subject.key().id())).name counter['total-text'] = text_material_management( ).get_all_texts_material( tutor_key, self.list_list_vm[index][0].subject.key(), page) for subindex in range(len(self.list_list_vm[index])): vm = self.list_list_vm[index][subindex] text_instance = text_material_management().get_text(vm) vinfo = {} vinfo['id'] = vm.key().id() if vm.available == True: vinfo[ 'able'] = '<i class="fa fa-pencil-square-o"></i> Deshabilitar' else: vinfo[ 'able'] = '<i class="fa fa-pencil-square-o"></i> Habilitar' vinfo['tutor'] = (tutor_management().get_tutor( vm.tutor.key().id())).first vinfo['topic'] = (topic_management().get_topic( vm.topic.key().id())).name vinfo['content'] = text_instance.content vinfo['number_views'] = text_instance.number_views list_texts.append(vinfo) index = index + 1 counter['index'] = index list_counter.append(copy.deepcopy(counter)) list_list_text_info.append(list_texts) self.response.write(self.list_list_vm) html = '' for i in range(len(list_list_text_info)): html += '<div class="block" id="num' + str( i ) + '"><div class="head"><i class="fa fa-book"></i> <span class="subject">' + str( list_counter[i]['subject'] ) + '</span><small> (' + str( len(list_counter[i]['total-text']) ) + ' texts)</small><span class="toggle"><i class="fa fa-caret-square-o-up"></i> Ocultar Materia</span></div>' for j in range(len(list_list_text_info[i])): html += '\ \ <a class="videor" href="view_text?text_material_id=' + str( list_list_text_info[i][j]['id']) + '" alt="' + str( list_list_text_info[i][j]['topic']) + '">\ <div class="video" id="' + str(list_list_text_info[i][j]['id']) + '">\ <div class="bimg" style="background:url(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS67YRkacb2A7x0mniuG1SUXllu22UOKOGYfJwARDWeZl8SyZQpfg);background-size:cover;background-position:center;">\ <div class="remove" id="' + str( list_list_text_info[i][j]['id']) + '">' + str( list_list_text_info[i][j] ['able']) + '</div>\ <div class="views">\ <i class="fa fa-eye"></i> ' + str(list_list_text_info[i][j] ['number_views']) + '\ </div>\ </div>\ <div class="about">\ <h2>' + str(list_list_text_info[i][j]['topic']) + '</h2>\ <small>por ' + str(list_list_text_info[i][j]['tutor']) + '</small>\ </div>\ </div>\ </a> ' if len(list_counter[i]['total-text']) > 6: html += '<div class="more"><i class="fa fa-refresh"></i> Mostrar mas</div>' html += '</div>' template_values = { "user": "******", "header_welcome": "", "header_tutor": "", "list_list_texts": list_list_text_info, "counter": list_counter, "html": html, "tutor_name": tutor_instance.first } self.response.write(template.render(template_values)) return 2 else: template_values = {} self.response.write(template.render(template_values)) return 3
def post(self): user = self.get_user_type() if user == user_type.visitor: return 0 elif user == user_type.student: return 1 elif user == user_type.tutor: available = self.request.get('available', None) page = self.request.get('vm_page', None) if available: vm_id = self.request.get('vm_id', None) text_material_management().make_available(int(vm_id)) if page: page = int(page) list_list_texts = [] tutor_id = self.session['user-id'] tutor_key = tutor_management().get_tutor(tutor_id).key() subject_instance = subject_management().find_name( self.request.get('vm_subject')) index = 0 list_texts = [] list_vm = text_material_management().get_list_text_material( tutor_key, subject_instance.key(), page) if list_vm: for index in range(len(list_vm)): vm = list_vm[index] text_instance = text_material_management().get_text(vm) vinfo = {} vinfo['id'] = vm.key().id() if vm.available == True: vinfo[ 'able'] = '<i class="fa fa-pencil-square-o"></i> Deshabilitar' else: vinfo[ 'able'] = '<i class="fa fa-pencil-square-o"></i> Habilitar' vinfo['tutor'] = (tutor_management().get_tutor( vm.tutor.key().id())).first vinfo['topic'] = (topic_management().get_topic( vm.topic.key().id())).name vinfo['content'] = text_instance.content vinfo['number_views'] = text_instance.number_views list_texts.append(vinfo) html = "" for v in list_texts: html += '\ \ <a class="textr" href="view_text?text_material_id=' + str( v['id']) + '" alt="' + str(v['topic']) + '">\ <div class="text" id="' + str(v['id']) + '">\ <div class="bimg" style="background:url(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS67YRkacb2A7x0mniuG1SUXllu22UOKOGYfJwARDWeZl8SyZQpfg);background-size:cover;background-position:center;">\ <div class="remove" id="' + str(v['id']) + '">' + str( v['able']) + '</div>\ <div class="views">\ <i class="fa fa-eye"></i> ' + str(v['number_views']) + '\ </div>\ </div>\ <div class="about">\ <h2>' + str(v['topic']) + '</h2>\ <small>por ' + str(v['tutor']) + '</small>\ </div>\ </div>\ </a> ' self.response.write(html) return 2 else: return 3
def post(self): user = self.get_user_type() if user == user_type.visitor: self.redirect('/') return 0 elif user == user_type.student: self.redirect('/home') return 1 elif user == user_type.tutor: id_exam = self.request.get('id_exam', None) list_questions_aux = [] if (id_exam): id_exam = int(id_exam) exam = exam_management().find_exam(id_exam) for q in exam.questions: q = exam_management().find_question(q.id()) list_questions_aux.append(q) self.response.write(len(list_questions_aux)) tutor_id = self.session['user-id'] tutor_key = tutor_management().get_tutor(tutor_id) id_unit = int(self.request.get('unit_exam', None)) unit = unit_management().get_unit(id_unit) name_exam = self.request.get('name_exam', None) topic_exam = self.request.get('topic_exam', None) learning_type = int(self.request.get('learning_type', None)) level = int(self.request.get('level', None)) subject = subject_management().get_subject_by_name( 'Programacion Orientada a Objetos') count_questions = int(self.request.get('count_questions', None)) answers = [] list_questions = [] correct_answers = [] cout_images = 0 for i in range(count_questions): q = Question() q.text = self.request.get('Q_' + str(i + 1), None) q.value = int(self.request.get('PossPtsQ_' + str(i + 1), None)) answers.append( self.request.get('Q_' + str(i + 1) + '_A_' + '1', None)) answers.append( self.request.get('Q_' + str(i + 1) + '_A_' + '2', None)) answers.append( self.request.get('Q_' + str(i + 1) + '_A_' + '3', None)) answers.append( self.request.get('Q_' + str(i + 1) + '_A_' + '4', None)) q.answers = answers if (self.request.get('Q_' + str(i + 1) + '_ChkBox_' + '1')): correct_answers.append(1) if (self.request.get('Q_' + str(i + 1) + '_ChkBox_' + '2')): correct_answers.append(2) if (self.request.get('Q_' + str(i + 1) + '_ChkBox_' + '3')): correct_answers.append(3) if (self.request.get('Q_' + str(i + 1) + '_ChkBox_' + '4')): correct_answers.append(4) q.correct_answers = correct_answers if (id_exam and i < len(list_questions_aux)): q.image = list_questions_aux[i].image if (self.request.get('Q_I' + str(i + 1))): q.image = self.get_uploads()[cout_images] cout_images = cout_images + 1 q = q.put() list_questions.append(q) if (id_exam): exam.delete() exam_management().add(name_exam, tutor_key, learning_type, level, unit, topic_exam, list_questions, subject) self.redirect('/admin_exam') return 2 else: self.redirect('/') return 3
def get(self): user = self.get_user_type() if user == user_type.visitor: self.redirect('/') elif user == user_type.student: if not 'video-id' in self.session: self.session['video-id'] = None video_content = '' if self.session['video-id'] == None: self.redirect('/home') try: video_id = int(self.session['video-id']) video_instance = video_management().get_video(video_id) video_content = video_instance.content except ValueError: video_content = '' except TypeError: video_id = 0 template_values={ "user":"******", "header_welcome":"", "header_user":"", "edit":False, "video_content":video_content } self.response.write(datavideo_template.render(template_values)) elif user == user_type.tutor: video_material_id = self.request.get('video_material_id',None) if not 'video-id' in self.session: self.session['video-id'] = None if not 'name_file' in self.session: self.session['name_file'] = None if not 'extension' in self.session: self.session['extension'] = None if self.session['video-id'] == None and self.session['name_file'] == None and video_material_id is None: self.redirect('/home') video_format_allowed = ['mp4','wmv','mkv','ogg','webm'] if not self.session['extension'] in video_format_allowed and video_material_id is None: self.redirect('/upload_video') tutor_id = self.session['user-id'] tutor_key = tutor_management().get_tutor(tutor_id).key() tutor_instance = tutor_management().get_tutor(tutor_id) if video_material_id: video_material_id = int(video_material_id) video_material_instance = video_material_management().get_video_material(video_material_id) video_instance = video_material_management().get_video(video_material_instance) vinfo = {} vinfo['topic'] = video_material_instance.topic vinfo['description'] = video_instance.description vinfo['level'] = video_material_instance.level vinfo['tags'] = video_material_instance.tags video_content = video_instance.content l_u=[] sub = subject_management().get_subject_by_name('Programacion Orientada a Objetos') list_unit = unit_management().get_all_units_of_subject(sub.key()) for u in list_unit: _u = {} _u['name'] = u.name _u['id'] = u.key().id() l_u.append(_u) template_values = { "user":"******", "vinfo":vinfo, "video_content":video_content, "list_unit":l_u, "name_file":self.session['name_file'], "edit":True, "tutor_name": tutor_instance.first, "video_material_id":video_material_id } else: video_content = '' l_s = [] l_u=[] try: video_id = int(self.session['video-id']) video_instance = video_management().get_video(video_id) video_content = video_instance.content except ValueError: video_content = '' except TypeError: video_id = 0 sub = subject_management().get_subject_by_name('Programacion Orientada a Objetos') list_unit = unit_management().get_all_units_of_subject(sub.key()) for u in list_unit: _u = {} _u['name'] = u.name _u['id'] = u.key().id() l_u.append(_u) template_values={ "user":"******", "header_welcome":"", "header_tutor":"", "video_content":video_content, "list_unit":l_u, "name_file":self.session['name_file'], "tutor_name": tutor_instance.first, "video_material_id":"", } self.response.write(datavideo_template.render(template_values)) else: self.redirect('/')
def get(self): user = self.get_user_type() if user == user_type.visitor: self.session['errort'] = '' self.session['successt'] = '' self.session['error1'] = '' self.session['error2'] = '' self.session['error3'] = '' self.session['success'] = '' self.session['errort'] = '' self.session['successt'] = '' template_values = {} #if not student_management().find_email("*****@*****.**"): if not tutor_management().find_email("*****@*****.**"): tutor = Tutor.Tutor() tutor.activate = True tutor.bday = datetime.datetime.strptime( "1991-09-22", "%Y-%m-%d").date() tutor.sex = "male" tutor.password = "******" salt = 'iSG716Pcu#' m = hashlib.md5() m.update(salt + tutor.password) tutor.password = m.hexdigest() tutor.email = "*****@*****.**" tutor.first = "tutor" tutor.last = "prueba" tutor.put() user = Student.Student() user.activate = True user.first = "alumno" user.last = "prueba" user.bday = datetime.datetime.strptime("1991-09-22", "%Y-%m-%d").date() user.email = "*****@*****.**" user.sex = "male" user.password = "******" user.tutors_list.append(tutor.key()) salt = 'iSG716Pcu#' m = hashlib.md5() m.update(salt + user.password) user.password = m.hexdigest() user.put() if not subject_management().find_name( 'Programacion Orientada a Objetos'): s1 = Subject() s1.name = 'Programacion Orientada a Objetos' s1.put() if not subject_management().find_name('IA'): s2 = Subject() s2.name = 'IA' s2.put() if not subject_management().find_name( 'Programacion Orientada a Objetos Avanzada'): s3 = Subject() s3.name = 'Programacion Orientada a Objetos Avanzada' s3.put() if not subject_management().find_name('Algoritmos'): s4 = Subject() s4.name = 'Algoritmos' s4.put() if not subject_management().find_name('Circuitos Digitales'): s5 = Subject() s5.name = 'Circuitos Digitales' s5.put() if not unit_management().get_unit_by_name('Introduccion a Java'): subject = subject_management().find_name( 'Programacion Orientada a Objetos') unit_management().add('Introduccion a Java', subject.key(), 1) sleep(0.1) unit_management().add('Variables, objetos y clases', subject.key(), 2) sleep(0.1) unit_management().add('Codificacion de imagenes', subject.key(), 3) sleep(0.1) unit_management().add('Ambiente de ejecucion y arreglos', subject.key(), 4) sleep(0.1) unit_management().add('Topicos avanzados de java', subject.key(), 5) sleep(0.1) unit_management().add('Manejo de Excepciones', subject.key(), 6) sleep(0.1) unit_management().add('Recursos Escenciales de Java', subject.key(), 7) sleep(0.1) unit_management().add('Hilos', subject.key(), 8) sleep(0.1) unit_management().add('Manipulacion de medios', subject.key(), 9) sleep(0.1) # Action().deleteall() # StudentRecords().deleteall() self.response.write(index_template.render(template_values)) return 0 elif user == user_type.student: self.redirect('/explorer') return 1 else: self.redirect('/home') return 2
def post(self): user = self.get_user_type() if user == user_type.visitor: self.redirect('/') return 0 elif user == user_type.student: page = self.request.get('tm_page',None) tutor_id = self.request.get('tm_tutor',None) subject_name = self.request.get('tm_subject') list_list_texts = [] index = 0 list_texts = [] enter = False if tutor_id: tutor_id = int(tutor_id) tutor_key = tutor_management().get_tutor(tutor_id).key() list_tm = text_material_management().get_tutor_available_texts(tutor_key,page) enter = True elif subject_name: subject_instance = subject_management().find_name(subject_name) list_tm = text_material_management().get_subject_available_texts(subject_instance.key(),page) enter = True if enter == True: for index in range(len(list_tm)): tm = list_tm[index] text_instance = text_material_management().get_text(tm) tinfo = {} tinfo['id'] = tm.key().id() if tm.available == True: tinfo['able'] = 'Deshabilitar' else: tinfo['able'] = 'Habilitar' tinfo['tutor'] = (tutor_management().get_tutor(tm.tutor.key().id())).first tinfo['topic'] = (topic_management().get_topic(tm.topic.key().id())).name tinfo['content'] = text_instance.content tinfo['number_views'] = text_instance.number_views list_texts.append(tinfo) html = '' for i in range(len(list_texts)): html +='\ \ <a class="textr" href="view_text?text_material_id='+str(list_texts[i]['id'])+'" alt="'+str(list_texts[i]['topic'])+'">\ <div class="text" id="'+str(list_texts[i]['id'])+'">\ <div class="bimg" style="background:url(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS67YRkacb2A7x0mniuG1SUXllu22UOKOGYfJwARDWeZl8SyZQpfg);background-size:cover;background-position:center;">\ <div class="views">\ <i class="fa fa-eye"></i> '+str(list_texts[i]['number_views'])+'\ </div>\ </div>\ <div class="about">\ <h2>'+str(list_texts[i]['topic'])+'</h2>\ <small>por '+str(list_texts[i]['tutor'])+'</small>\ </div>\ </div>\ </a> ' self.response.write(html) return 1 elif user == user_type.tutor: self.redirect('/home') return 2 else: self.redirect('/home') return 3
def get_list_video_material_of_one_subject(self,tutor,subject,page): s = subject_management().get_subject(subject.id()) return self.get_list_video_material(tutor,s.key(),page)
def get(self): user = self.get_user_type() if user == user_type.visitor: self.redirect('/') elif user == user_type.student: video_material_id = self.request.get('video_material_id',None) if not video_material_id: self.redirect('/explorer') video_instance = None video_material_instance = None video_material_id = int(video_material_id) if video_material_id: video_material_instance = video_material_management().get_video_material(video_material_id) if not video_material_instance: self.redirect('/explorer') else: student_instance = student_management().find_key(self.session['user-id']) video_instance = video_material_management().get_video(video_material_instance) video_management().update_number_views(video_instance) list_tag_video_supported = ['mkv','mp4'] list_tag_embedded_supported = ['wmv','mov','mpg','avi'] #list_tag_object_supported = ['swf'] vformat = video_instance.ext_format vinfo = {} vinfo['format'] = vformat vinfo['tutor'] = (tutor_management().get_tutor(video_material_instance.tutor.key().id())).first vinfo['topic'] = (topic_management().get_topic(video_material_instance.topic.key().id())).name vinfo['content'] = video_instance.content vinfo['subject'] = (subject_management().get_subject(video_material_instance.subject.key().id())).name vinfo['description'] = video_instance.description vinfo['tags'] = video_material_instance.tags template_values={ "user":"******", "header_welcome":"", "header_tutor":"", "vinfo":vinfo, 'embbeded_supported':list_tag_embedded_supported, 'video_supported':list_tag_video_supported, "student_name":student_instance.first #"object_supported":list_tag_object_supported } self.response.write(viewvideo_template.render(template_values)) elif user == user_type.tutor: video_material_id = int(self.request.get('video_material_id', None)) video_instance = None video_material_instance = None if video_material_id: video_material_instance = video_material_management().get_video_material(video_material_id) if not video_material_instance: self.redirect('/home') else: tutor_id = self.session['user-id'] tutor_key = tutor_management().get_tutor(tutor_id).key() tutor_instance = tutor_management().get_tutor(tutor_id) video_instance = video_material_management().get_video(video_material_instance) list_video_supported = ['mp4','wmv','mkv','ogg','webm'] vformat = video_instance.ext_format #list_tag_object_supported = ['swf'] vinfo = {} vinfo['format'] = vformat vinfo['tutor'] = (tutor_management().get_tutor(video_material_instance.tutor.key().id())).first vinfo['topic'] = (topic_management().get_topic(video_material_instance.topic.key().id())).name vinfo['content'] = video_instance.content vinfo['subject'] = (subject_management().get_subject(video_material_instance.subject.key().id())).name vinfo['description'] = video_instance.description vinfo['tags'] = video_material_instance.tags #blob_info = BlobInfo.get(video_instance.content.key()) template_values={ "user":"******", "header_welcome":"", "header_tutor":"", "vinfo":vinfo, "tutor_name": tutor_instance.first, #"object_supported":list_tag_object_supported } #self.response.headers['Content-Type'] = 'video/avi' self.response.write(viewvideo_template.render(template_values)) else: self.redirect('/home')
def get(self): user = self.get_user_type() if user == user_type.visitor: self.redirect('/') return 0 elif user == user_type.student: student_instance = student_management().get_student(int(self.session['user-id'])) tutor = tutor_management().get_all_tutors()[0] subject = subject_management().get_subject_by_name('Programacion Orientada a Objetos') unit_id = self.request.get('unit_id',None) if unit_id: unit_id = int(unit_id) else: ##id de 1era unidad unit_id = 6348855016685568 page = self.request.get('page',0) try: int(page) page = int(page)-1 except ValueError: page = 0 if page < 1: page = 0 unit = unit_management().get_unit(unit_id) list_list_text_info = [] countent = {} list_counter = [] list_content = [] listi = [] list_all_videos = video_material_management().get_all_unit_available_videos(unit.key().id()) for t in student_instance.tutors_list: listi.extend(video_material_management().get_all_videos_material(t,subject.key(),page)) self.list_list_vm = video_material_management().get_list_video_material_of_subject(tutor.key(),page) list_vm = video_material_management().get_unit_available_videos(unit.key().id(),page) c=0 list_videos = [] total_text = 0 if list_vm: for index in range(len(list_vm)): vm = list_vm[index] video_instance = video_material_management().get_video(vm) vinfo = {} vinfo['id'] = vm.key().id() vinfo['able'] = vm.available vinfo['tutor'] = (tutor_management().get_tutor(vm.tutor.key().id())).first vinfo['topic'] = (topic_management().get_topic(vm.topic.key().id())).name vinfo['content'] = video_instance.content vinfo['number_views'] = video_instance.number_views list_videos.append(vinfo) index = index + 1 pages = int(ceil(len(list_all_videos)/10.)) if pages < 1: pages = 1 list_page = [None] * pages html = '' template_values={ "user":"******", "header_welcome":"", "header_tutor":"", "total_pages":len(list_page), "current_page":(page+1), "list_videos": list_videos, "unit_id": unit_id, "pages":list_page, "Titulo":"Gestion de Videos", "counter":list_counter, "html":html, "subject":subject.name, "student_name": student_instance.first } self.response.write(admin_video_template.render(template_values)) return 1 elif user == user_type.tutor: list_list_texts = [] tutor_id = self.session['user-id'] tutor_key = tutor_management().get_tutor(tutor_id).key() tutor_instance = tutor_management().get_tutor(tutor_id) subject = subject_management().get_subject_by_name('Programacion Orientada a Objetos') page = self.request.get('page',0) try: int(page) page = int(page)-1 except ValueError: page = 0 if page < 1: page = 0 index = 0 list_list_text_info = [] countent = {} list_counter = [] list_content = [] #self.list_list_vm = text_material_management().get_list_text_material_of_subject(tutor_key,pages) listi = video_material_management().get_all_videos_material(tutor_key,subject,page) list_vm = video_material_management().get_list_video_material_of_one_subject(tutor_key,subject.key(),page) c=0 list_videos = [] total_text = 0 if list_vm: for index in range(len(list_vm)): vm = list_vm[index] video_instance = video_material_management().get_video(vm) vinfo = {} vinfo['id'] = vm.key().id() vinfo['able'] = vm.available vinfo['tutor'] = (tutor_management().get_tutor(vm.tutor.key().id())).first vinfo['topic'] = (topic_management().get_topic(vm.topic.key().id())).name vinfo['content'] = video_instance.content vinfo['number_views'] = video_instance.number_views list_videos.append(vinfo) index = index + 1 pages = int(ceil(len(listi)/10.)) if pages < 1: pages = 1 list_page = [None] * pages template_values={ "user":"******", "header_welcome":"", "header_tutor":"", "list_videos": list_videos, "total_pages":len(list_page), "current_page":(page+1), "pages":list_page, "Titulo":"Gestion de Videos", "counter":list_counter, "subject":subject.name, "tutor_name": tutor_instance.first } self.response.write(admin_video_template.render(template_values)) return 2 else: admi_text_template_values = { } self.response.write(admi_text_template.render(template_values)) return 3
def get(self): user = self.get_user_type() if user == user_type.visitor: self.redirect('/') elif user == user_type.student: text_material_id = self.request.get('text_material_id', None) if not text_material_id: self.redirect('/explorer') text_instance = None text_material_instance = None text_material_id = int(text_material_id) if text_material_id: text_material_instance = text_material_management( ).get_text_material(text_material_id) if not text_material_instance: self.redirect('/explorer') else: student_instance = student_management().find_key( self.session['user-id']) text_instance = text_material_management().get_text( text_material_instance) text_management().update_number_views(text_instance) list_tag_text_supported = ['pdf'] list_tag_embedded_supported = ['pdf'] #list_tag_object_supported = ['swf'] tformat = text_instance.ext_format tinfo = {} tinfo['format'] = tformat tinfo['tutor'] = (tutor_management().get_tutor( text_material_instance.tutor.key().id())).first tinfo['topic'] = (topic_management().get_topic( text_material_instance.topic.key().id())).name tinfo['content'] = text_instance.content tinfo['subject'] = (subject_management().get_subject( text_material_instance.subject.key().id())).name tinfo['description'] = text_instance.description tinfo['tags'] = text_material_instance.tags template_values = { "user": "******", "header_welcome": "", "header_tutor": "", "tinfo": tinfo, 'embbeded_supported': list_tag_embedded_supported, 'text_supported': list_tag_text_supported, "student_name": student_instance.first #"object_supported":list_tag_object_supported } self.response.write(viewtext_template.render(template_values)) elif user == user_type.tutor: text_material_id = int(self.request.get('text_material_id')) text_instance = None text_material_instance = None if text_material_id: text_material_instance = text_material_management( ).get_text_material(text_material_id) if not text_material_instance: self.redirect('/home') else: tutor_id = self.session['user-id'] tutor_key = tutor_management().get_tutor(tutor_id).key() tutor_instance = tutor_management().get_tutor(tutor_id) text_instance = text_material_management().get_text( text_material_instance) list_text_supported = ['pdf'] tformat = text_instance.ext_format #list_tag_object_supported = ['swf'] tinfo = {} tinfo['format'] = tformat tinfo['tutor'] = (tutor_management().get_tutor( text_material_instance.tutor.key().id())).first tinfo['topic'] = (topic_management().get_topic( text_material_instance.topic.key().id())).name tinfo['content'] = text_instance.content tinfo['subject'] = (subject_management().get_subject( text_material_instance.subject.key().id())).name tinfo['description'] = text_instance.description tinfo['tags'] = text_material_instance.tags #blob_info = BlobInfo.get(text_instance.content.key()) template_values = { "user": "******", "header_welcome": "", "header_tutor": "", "tinfo": tinfo, "tutor_name": tutor_instance.first, #"object_supported":list_tag_object_supported } #self.response.headers['Content-Type'] = 'video/avi' self.response.write(viewtext_template.render(template_values)) else: self.redirect('/home')
def get(self): user = self.get_user_type() if user == user_type.visitor: self.redirect('/') return 0 elif user == user_type.student: #self.response.headers['Content-Type'] = 'text/html' classification = self.request.get('classification', None) student_instance = student_management().find_key( self.session['user-id']) page = 1 list_list_texts = [] index = 0 list_list_text_info = [] list_list_counter = [] countent = {} list_counter = [] list_content = [] i = 0 list_list_tm = text_material_management( ).get_subjects_available_texts(page) for index in range(len(list_list_tm)): list_texts = [] counter = {} content = {} if list_list_tm[index]: counter['tutorid'] = '' counter['class'] = 'subject' counter['title'] = (subject_management().get_subject( list_list_tm[index][0].subject.key().id())).name counter['total-text'] = text_material_management( ).get_all_subject_available_texts( list_list_tm[index][0].subject.key(), page) for subindex in range(len(list_list_tm[index])): tm = list_list_tm[index][subindex] text_instance = text_material_management().get_text(tm) tinfo = {} tinfo['id'] = tm.key().id() if tm.available == True: tinfo['able'] = 'Deshabilitar' else: tinfo['able'] = 'Habilitar' tinfo['tutor'] = (tutor_management().get_tutor( tm.tutor.key().id())).first tinfo['topic'] = (topic_management().get_topic( tm.topic.key().id())).name tinfo['content'] = text_instance.content tinfo['number_views'] = text_instance.number_views list_texts.append(tinfo) index = index + 1 counter['index'] = index list_counter.append(copy.deepcopy(counter)) list_list_text_info.append(list_texts) list_list_tm = text_material_management( ).get_tutors_available_texts(page) x = 2 for index in range(len(list_list_tm)): list_texts = [] counter = {} content = {} if list_list_tm[index]: counter['tutorid'] = list_list_tm[index][0].tutor.key().id( ) counter['class'] = 'tutor' counter['title'] = (tutor_management().find_key( list_list_tm[index][0].tutor.key().id())).first counter['total-text'] = text_material_management( ).get_all_tutor_available_texts( list_list_tm[index][0].tutor.key(), page) for subindex in range(len(list_list_tm[index])): tm = list_list_tm[index][subindex] text_instance = text_material_management().get_text(tm) tinfo = {} tinfo['id'] = tm.key().id() if tm.available == True: tinfo['able'] = 'Deshabilitar' else: tinfo['able'] = 'Habilitar' tinfo['tutor'] = (tutor_management().get_tutor( tm.tutor.key().id())).first tinfo['topic'] = (topic_management().get_topic( tm.topic.key().id())).name tinfo['content'] = text_instance.content tinfo['number_views'] = text_instance.number_views list_texts.append(tinfo) index = index + 1 counter['index'] = index list_counter.append(copy.deepcopy(counter)) list_list_text_info.append(list_texts) new_list_counter = [] l = [] c = 0 for i in range(len(list_counter)): c = 0 l = list_counter[i]['total-text'] new_counter = {} for j in range(len(l)): if l[j].available: c += 1 # for j in range(len(list_counter[i])): # if list_counter[i][j]['total-text'].available: # c += 1 new_counter['num_texts'] = c new_list_counter.append(copy.deepcopy(new_counter)) html = '' for i in range(len(list_list_text_info)): if x == 2: html += '<div class="block ' + str( list_counter[i]['class'] ) + '" data-tutor-id="' + str( list_counter[i]['tutorid'] ) + '" id="num' + str( i ) + '"><div class="head"><i class="fa fa-book"></i> <span class="subject">' + str( list_counter[i]['title'] ) + '</span><small> (' + str( new_list_counter[i]['num_texts'] ) + ' texts)</small><span class="toggle"><i class="fa fa-caret-square-o-up"></i> Ocultar Materia</span></div>' else: html += '<div class="block ' + str( list_counter[i]['class'] ) + '" id="num' + str( i ) + '"><div class="head"><i class="fa fa-book"></i> <span class="subject">' + str( list_counter[i]['title'] ) + '</span><small> (# texts)</small><span class="toggle"><i class="fa fa-caret-square-o-up"></i> Ocultar Materia</span></div>' for j in range(len(list_list_text_info[i])): html += '\ <a class="textr" href="view_text?text_material_id=' + str( list_list_text_info[i][j]['id']) + '" alt="' + str( list_list_text_info[i][j]['topic']) + '">\ <div class="text" id="' + str(list_list_text_info[i][j]['id']) + '">\ <div class="bimg" style="background:url(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS67YRkacb2A7x0mniuG1SUXllu22UOKOGYfJwARDWeZl8SyZQpfg);background-size:cover;background-position:center;">\ <div class="views">\ <i class="fa fa-eye"></i> ' + str( list_list_text_info[i][j]['number_views']) + '\ </div>\ </div>\ <div class="about">\ <h2>' + str(list_list_text_info[i][j]['topic']) + '</h2>\ <small>por ' + str(list_list_text_info[i][j]['tutor']) + '</small>\ </div>\ </div>\ </a> ' # if len(list_counter[i]['total-text']) > 6: if new_list_counter[i]['num_texts'] > 6: html += '<div class="more"><i class="fa fa-refresh"></i> Mostrar mas</div>' html += '</div>' template_values = { "user": "******", "header_welcome": "", "header_tutor": "", "list_list_texts": list_list_text_info, "counter": list_counter, "html": html, "student_name": student_instance.first } self.response.write(explorer_template.render(template_values)) return 1 elif user == user_type.tutor: self.redirect('/home') return 2 else: self.redirect('/home') return 3
def get(self): user = self.get_user_type() if user == user_type.visitor: self.redirect('/') return 0 elif user == user_type.student: tutor_id = self.session['user-id'] student_instance = student_management().get_student( int(self.session['user-id'])) tutor = tutor_management().get_tutor(5066549580791808) subject = subject_management().get_subject_by_name( 'Programacion Orientada a Objetos') page = self.request.get('page', 0) unit_id = self.request.get('unit_id', None) if unit_id: unit_id = int(unit_id) else: ##id de 1era unidad unit_id = 5750892489867264 page = self.request.get('page', 0) try: int(page) page = int(page) - 1 except ValueError: page = 0 if page < 1: page = 0 index = 0 unit = unit_management().get_unit(unit_id) list_list_text_info = [] countent = {} list_counter = [] list_content = [] list_all_exams = exam_management().get_all_unit_available_exams( unit.key()) list_em = exam_management().get_unit_available_exams( unit.key(), page) list_exams = [] if list_em: #total_text = text_material_management().get_all_texts_material(tutor_key,self.list_list_tm[index][0].subject.key(),page) for index in range(len(list_em)): em = list_em[index] exam_instance = exam_management().find_exam(em.key().id()) einfo = {} einfo['id'] = em.key().id() einfo['able'] = em.available einfo['tutor'] = (tutor_management().get_tutor( em.user.key().id())).first einfo['topic'] = em.topic #einfo['content'] = exam_instance.content #einfo['number_views'] = exam_instance.number_views #einfo['description'] = exam_instance.description list_exams.append(einfo) index = index + 1 html = '' pages = int(ceil(len(list_all_exams) / 10.)) if pages < 1: pages = 1 list_page = [None] * pages template_values = { "user": "******", "header_welcome": "", "header_tutor": "", "total_pages": len(list_page), "current_page": (page + 1), "list_exams": list_exams, "pages": list_page, #Agregado "unit_id": unit_id, "Titulo": "Gestion de Textos", "counter": list_counter, "html": html, "subject": subject.name, "student_name": student_instance.first } self.response.write(admin_exam_template.render(template_values)) return 1 elif user == user_type.tutor: tutor_id = self.session['user-id'] tutor_key = tutor_management().get_tutor(tutor_id).key() tutor_instance = tutor_management().get_tutor(tutor_id) subject = subject_management().get_subject_by_name( 'Programacion Orientada a Objetos') page = self.request.get('page', 0) try: int(page) page = int(page) - 1 except ValueError: page = 0 if page < 1: page = 0 index = 0 list_list_text_info = [] countent = {} list_counter = [] list_content = [] listi = tutor_management().find_all_exams_subject( tutor_key, subject.key()) #self.list_list_tm = text_material_management().get_list_text_material_of_subject(tutor_key,page) list_em = tutor_management().find_all_exams( tutor_key, subject.key(), page) c = 0 list_exams = [] total_em = 0 if list_em: #total_text = text_material_management().get_all_texts_material(tutor_key,self.list_list_tm[index][0].subject.key(),page) for index in range(len(list_em)): em = list_em[index] exam_instance = exam_management().find_exam(em.key().id()) einfo = {} einfo['id'] = em.key().id() einfo['able'] = em.available einfo['tutor'] = (tutor_management().get_tutor( em.user.key().id())).first einfo['topic'] = em.topic ''' einfo['content'] = exam_instance.content einfo['number_views'] = exam_instance.number_views einfo['description'] = exam_instance.description ''' list_exams.append(einfo) index = index + 1 html = '' pages = int(ceil(len(listi) / 10.)) if pages < 1: pages = 1 list_page = [None] * pages template_values = { "user": "******", "header_welcome": "", "header_tutor": "", "total_pages": len(list_page), "current_page": (page + 1), "list_exams": list_exams, "subject": subject.name, "pages": list_page, "Titulo": "Gestion de Examenes", "counter": list_counter, "tutor_name": tutor_instance.first } self.response.write(admin_exam_template.render(template_values)) return 2 else: return 3
def get(self): user = self.get_user_type() if user == user_type.visitor: self.redirect('/') elif user == user_type.student: video_material_id = self.request.get('video_material_id', None) if not video_material_id: self.redirect('/explorer') video_instance = None video_material_instance = None video_material_id = int(video_material_id) if video_material_id: video_material_instance = video_material_management( ).get_video_material(video_material_id) if not video_material_instance: self.redirect('/explorer') else: student_instance = student_management().find_key( self.session['user-id']) video_instance = video_material_management().get_video( video_material_instance) video_management().update_number_views(video_instance) list_tag_video_supported = ['mkv', 'mp4'] list_tag_embedded_supported = ['wmv', 'mov', 'mpg', 'avi'] #list_tag_object_supported = ['swf'] vformat = video_instance.ext_format vinfo = {} vinfo['format'] = vformat vinfo['tutor'] = (tutor_management().get_tutor( video_material_instance.tutor.key().id())).first vinfo['topic'] = (topic_management().get_topic( video_material_instance.topic.key().id())).name vinfo['content'] = video_instance.content vinfo['subject'] = (subject_management().get_subject( video_material_instance.subject.key().id())).name vinfo['description'] = video_instance.description vinfo['tags'] = video_material_instance.tags template_values = { "user": "******", "header_welcome": "", "header_tutor": "", "vinfo": vinfo, 'embbeded_supported': list_tag_embedded_supported, 'video_supported': list_tag_video_supported, "student_name": student_instance.first #"object_supported":list_tag_object_supported } self.response.write(viewvideo_template.render(template_values)) elif user == user_type.tutor: video_material_id = int(self.request.get('video_material_id', None)) video_instance = None video_material_instance = None if video_material_id: video_material_instance = video_material_management( ).get_video_material(video_material_id) if not video_material_instance: self.redirect('/home') else: tutor_id = self.session['user-id'] tutor_key = tutor_management().get_tutor(tutor_id).key() tutor_instance = tutor_management().get_tutor(tutor_id) video_instance = video_material_management().get_video( video_material_instance) list_video_supported = ['mp4', 'wmv', 'mkv', 'ogg', 'webm'] vformat = video_instance.ext_format #list_tag_object_supported = ['swf'] vinfo = {} vinfo['format'] = vformat vinfo['tutor'] = (tutor_management().get_tutor( video_material_instance.tutor.key().id())).first vinfo['topic'] = (topic_management().get_topic( video_material_instance.topic.key().id())).name vinfo['content'] = video_instance.content vinfo['subject'] = (subject_management().get_subject( video_material_instance.subject.key().id())).name vinfo['description'] = video_instance.description vinfo['tags'] = video_material_instance.tags #blob_info = BlobInfo.get(video_instance.content.key()) template_values = { "user": "******", "header_welcome": "", "header_tutor": "", "vinfo": vinfo, "tutor_name": tutor_instance.first, #"object_supported":list_tag_object_supported } #self.response.headers['Content-Type'] = 'video/avi' self.response.write(viewvideo_template.render(template_values)) else: self.redirect('/home')
def get(self): user=self.get_user_type() if user == user_type.visitor: self.session['errort'] = '' self.session['successt'] = '' self.session['error1'] = '' self.session['error2'] = '' self.session['error3'] = '' self.session['success'] = '' self.session['errort'] = '' self.session['successt'] = '' template_values={ } #if not student_management().find_email("*****@*****.**"): if not tutor_management().find_email("*****@*****.**"): tutor=Tutor.Tutor() tutor.activate=True tutor.bday=datetime.datetime.strptime("1991-09-22","%Y-%m-%d").date() tutor.sex="male" tutor.password="******" salt = 'iSG716Pcu#' m = hashlib.md5() m.update(salt+tutor.password) tutor.password=m.hexdigest() tutor.email="*****@*****.**" tutor.first="tutor" tutor.last="prueba" tutor.put() user=Student.Student() user.activate=True user.first="alumno" user.last="prueba" user.bday=datetime.datetime.strptime("1991-09-22","%Y-%m-%d").date() user.email="*****@*****.**" user.sex="male" user.password="******" user.tutors_list.append(tutor.key()) salt = 'iSG716Pcu#' m = hashlib.md5() m.update(salt+user.password) user.password=m.hexdigest() user.put() if not subject_management().find_name('Programacion Orientada a Objetos'): s1 = Subject() s1.name = 'Programacion Orientada a Objetos' s1.put() if not subject_management().find_name('IA'): s2 = Subject() s2.name = 'IA' s2.put() if not subject_management().find_name('Programacion Orientada a Objetos Avanzada'): s3 = Subject() s3.name = 'Programacion Orientada a Objetos Avanzada' s3.put() if not subject_management().find_name('Algoritmos'): s4 = Subject() s4.name = 'Algoritmos' s4.put() if not subject_management().find_name('Circuitos Digitales'): s5 = Subject() s5.name = 'Circuitos Digitales' s5.put() if not unit_management().get_unit_by_name('Introduccion a Java'): subject = subject_management().find_name('Programacion Orientada a Objetos') unit_management().add('Introduccion a Java',subject.key(),1) sleep(0.1) unit_management().add('Variables, objetos y clases',subject.key(),2) sleep(0.1) unit_management().add('Codificacion de imagenes',subject.key(),3) sleep(0.1) unit_management().add('Ambiente de ejecucion y arreglos',subject.key(),4) sleep(0.1) unit_management().add('Topicos avanzados de java',subject.key(),5) sleep(0.1) unit_management().add('Manejo de Excepciones',subject.key(),6) sleep(0.1) unit_management().add('Recursos Escenciales de Java',subject.key(),7) sleep(0.1) unit_management().add('Hilos',subject.key(),8) sleep(0.1) unit_management().add('Manipulacion de medios',subject.key(),9) sleep(0.1) # Action().deleteall() # StudentRecords().deleteall() self.response.write(index_template.render(template_values)) return 0 elif user == user_type.student: self.redirect('/explorer') return 1 else: self.redirect('/home') return 2
def post(self): user = self.get_user_type() if user == user_type.visitor: self.redirect('/') return 0 elif user == user_type.student: page = self.request.get('vm_page',None) tutor_id = self.request.get('vm_tutor',None) subject_name = self.request.get('vm_subject') list_list_videos = [] index = 0 list_videos = [] enter = False if tutor_id: tutor_id = int(tutor_id) tutor_key = tutor_management().get_tutor(tutor_id).key() list_vm = video_material_management().get_tutor_available_videos(tutor_key,page) enter = True elif subject_name: subject_instance = subject_management().find_name(subject_name) list_vm = video_material_management().get_subject_available_videos(subject_instance.key(),page) enter = True if enter == True: for index in range(len(list_vm)): vm = list_vm[index] video_instance = video_material_management().get_video(vm) vinfo = {} vinfo['id'] = vm.key().id() if vm.available == True: vinfo['able'] = 'Deshabilitar' else: vinfo['able'] = 'Habilitar' vinfo['tutor'] = (tutor_management().get_tutor(vm.tutor.key().id())).first vinfo['topic'] = (topic_management().get_topic(vm.topic.key().id())).name vinfo['content'] = video_instance.content vinfo['number_views'] = video_instance.number_views list_videos.append(vinfo) html = '' for i in range(len(list_videos)): html +='\ \ <a class="videor" href="view_video?video_material_id='+str(list_videos[i]['id'])+'" alt="'+str(list_videos[i]['topic'])+'">\ <div class="video" id="'+str(list_videos[i]['id'])+'">\ <div class="bimg" style="background:url(https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS67YRkacb2A7x0mniuG1SUXllu22UOKOGYfJwARDWeZl8SyZQpfg);background-size:cover;background-position:center;">\ <div class="views">\ <i class="fa fa-eye"></i> '+str(list_videos[i]['number_views'])+'\ </div>\ </div>\ <div class="about">\ <h2>'+str(list_videos[i]['topic'])+'</h2>\ <small>por '+str(list_videos[i]['tutor'])+'</small>\ </div>\ </div>\ </a> ' self.response.write(html) return 1 elif user == user_type.tutor: self.redirect('/home') return 2 else: self.redirect('/home') return 3