def subject_upload_process_controller(): file = request.files['file'] rows = get_row_values(file) rows=rows[1:] for column in rows: new_subject = Subject( id=generate_key(), name=column[0]) new_subject.put() return render_template('all_done.html')
def __init__(self): current_subject = Subject().get_current() if current_subject is None: logging.error("Cannot find current subject!!!") now = datetime.datetime.now() if now <= current_subject.active_to: return # invalidate currect subject current_subject.is_current = False # new subject to pick new_subject = ( Subject.all().filter("active_from =", datetime.datetime(now.year, now.month, now.day, 0, 0, 0)).get() ) if new_subject is None: logging.error("Cannot find next subject!!!") new_subject.is_current = True s = SaveState().get_by_k("recalc_subject_id") if s is not None and s.v != "0": logging.error( "Cannot start recalculating new subject (%s), because old one (%s) is still active!!!" % (new_subject.key().id(), current_subject.key().id()) ) return # ready to go! current_subject.put() new_subject.put() s = SaveState().get_by_k("recalc_subject_id") if s is None: s = SaveState() s.k = "recalc_subject_id" s.v = str(current_subject.key().id()) s.put() else: s.v = str(current_subject.key().id()) s.put() s = SaveState().get_by_k("recalc_action") if s is None: s = SaveState() s.k = "recalc_action" s.v = "points" s.put() else: s.v = "points" s.put()
def post(self): if self.request.get('name'): s = Subject() s.name = self.request.get('name') if len(self.request.get('tags')) == 0 or self.request.get('tags') == '[]': s.tags = [] else: s.tags = self.request.get('tags').split(',') # active from f_y, f_m, f_d = self.request.get('active_from').split('-') s.active_from = datetime.datetime(int(f_y), int(f_m), int(f_d), 0, 0, 0) # active to t_y, t_m, t_d = self.request.get('active_to').split('-') s.active_to = datetime.datetime(int(t_y), int(t_m), int(t_d), 23, 59, 59) s.is_current = False s.put() self.redirect('/admin/subject')
def subject_controller(id): name = request.values.get('name') if id: subject = Subject.query(Subject.id==id).get() if subject: if request.method == 'GET': if request.values.get('json'): return json.dumps(dict(subject=subject.json)) return render_template('subject_view.html',subject = subject, title = "Subject List") elif request.method == 'PUT': subject = edit_parser(subject,request) subject.put() return 'Value Updated', 204 elif request.method == 'DELETE': subject.key.delete() return 'Item deleted', 204 else: return 'Method Not Allowed' else: if request.method == 'GET': subject_list = Subject.query().fetch(1000) entries=None if subject_list: entries = [subject.dto() for subject in subject_list] if request.values.get('json'): return json.dumps(dict(subject=entries)) return render_template('subject.html',subject_entries = entries, title = "Subject List") elif request.method == 'POST': subject = Subject() subject = new_parser(subject,request) subject.put() url = '/subject/' if request.values.get('json'): url = '/subject/json=true' return redirect(url) else: return abort(405)
def post(self): user = users.get_current_user() if self.request.get("action") == "Add Subject" and self.request.get("subject_string") != '': subject_string = self.request.get("subject_string") subject = Subject(name=subject_string, owner=user.user_id()) subject.put() else: key = self.request.get("subject-id") subject_list = Subject.query().filter(Subject.owner == user.user_id()).fetch() flag = False for subj in subject_list: if str(subj.key) == key: selected_subject = subj flag = True if flag: notes_to_delete = Note.query().filter(Note.subject == selected_subject.name and Note.owner == user.user_id()) songs_to_delete = Song.query().filter(Song.subject == selected_subject.name and Song.owner == user.user_id()) for note in notes_to_delete: note.key.delete() for song in songs_to_delete: song.key.delete() selected_subject.key.delete() time.sleep(0.1) self.redirect('/')