예제 #1
0
파일: website.py 프로젝트: di/doneit
def login():
    if check(request):
        redirect(request.query.ret or "/")
    if doneit.login(request.forms.get('email'), request.forms.get('password')):
        user_id = doneit.get_user_by_email(request.forms.get('email'))['_id']
        response.set_cookie("_id", str(user_id))
        response.set_cookie("session", doneit.new_session(str(user_id)))
        redirect(request.query.ret or "/")
    redirect("/login?failed=true&ret=%s" % (request.query.ret))
예제 #2
0
파일: website.py 프로젝트: di/doneit
def post_projects():
    if check(request):
        entity = dict()
        for field in ['name', 'description', 'digest-hour']:
            entity[field] = request.forms.get(field)
        entity['admin_id'] = request.get_cookie("_id")
        entity['secret-key'] = "%032x" % random.getrandbits(128)
        _id = doneit.add_project(entity)
        redirect("/projects/%s" % (_id))
    else:
        redirect("/login?ret=%s" % (request.path))
예제 #3
0
파일: website.py 프로젝트: di/doneit
def post_users():
    if check(request):
        entity = dict()
        for field in ['name', 'email', 'password', 'reminder-hour', 'alternate-email']:
            entity[field] = request.forms.get(field)
        for field in ['daily-digest', 'reminder-email']:
            entity[field] = (request.forms.get(field) == 'true')
        entity['project_id'] = ObjectId(request.forms.get('project'))
        _id = doneit.add_user(entity)
        redirect("/users/%s" % (_id))
    else:
        redirect("/login?ret=%s" % (request.path))
예제 #4
0
파일: website.py 프로젝트: di/doneit
def post_tasks():
    if check(request):
        entity = dict()
        user_id = request.get_cookie("_id")
        project_id = doneit.get_by_id('users', user_id)["project_id"]
        for field in ['type', 'comment']:
            entity[field] = request.forms.get(field)
        entity['user_id'] = user_id
        entity['project_id'] = project_id
        r = requests.post(doneit.entry_input_service_url + "/task", entity)
        if r.json['status'] == "success":
            redirect("/projects/%s" % (project_id))
        else:
            redirect("/tasks")
    else:
        redirect("/login?ret=%s" % (request.path))
예제 #5
0
파일: website.py 프로젝트: di/doneit
def get_project(id):
    entity = doneit.get_by_id('projects', id)
    entity['admin'] = doneit.get_by_id("users", entity['admin_id'])
    if request.query.date:
        entity['date'] = doneit.timezone.localize(datetime.datetime.fromtimestamp(time.mktime(time.strptime(request.query.date, "%y-%m-%d"))))
    else:
        entity['date'] = doneit.timezone.localize(datetime.datetime.now().replace(hour=0,minute=0,second=0,microsecond=0)) # midnight today
        if (doneit.timezone.localize(datetime.datetime.now()).hour > int(entity['digest-hour'])):
            # Cutoff has already passed for today
            entity['date'] = entity['date'] + timedelta(days=1)

    # Offset date based on when digest is sent (plus a magic number)
    entity['date'] = entity['date'] + timedelta(hours=int(entity['digest-hour']))

    for task_type in ['done', 'todo', 'block', 'doing']:
        entity[task_type] = doneit.get_tasks(task_type, entity['_id'], entity['date'])
    return template('project', loggedin=check(request), project=entity)
예제 #6
0
파일: website.py 프로젝트: di/doneit
def get_projects():
    entity = doneit.get_all('projects')
    return template('projects', loggedin=check(request), projects=entity)
예제 #7
0
파일: website.py 프로젝트: di/doneit
def get_user(id):
    entity = doneit.get_by_id('users', id)
    return template('user', loggedin=check(request), user=entity)
예제 #8
0
파일: website.py 프로젝트: di/doneit
def get_users():
    users = doneit.get_all('users')
    projects = doneit.get_all('projects')
    return template('users', loggedin=check(request), users=users, projects=projects)
예제 #9
0
파일: website.py 프로젝트: di/doneit
def get_tasks():
    if check(request):
        return template('tasks', loggedin=check(request))
    else:
        redirect("/login?ret=%s" % (request.path))
예제 #10
0
파일: website.py 프로젝트: di/doneit
def login():
    failed = request.query.failed == "true"
    return template('login', loggedin=check(request), failed=failed)
예제 #11
0
파일: website.py 프로젝트: di/doneit
def get_homepage():
    return template('home', loggedin=check(request))