Exemple #1
0
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')
Exemple #4
0
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)
Exemple #5
0
 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('/')