Esempio n. 1
0
def file_page(user, project, fname):
    content=''; error=''
    try:
        project_vfs=proj.project_by_name(user, project)
        content=''.join(project_vfs.load(fname))
    except:
        error='No such file exists'
    #if ?mode=raw, show content as plain text:
    try:
        if request.args.get('mode')=='raw':
            return content, 200, {'Content-Type': 'text/plain; charset=utf-8'}
    except Exception:
        pass
    return render_template('file.html', f=content, fname=fname, user=user, project=project, error=error)
Esempio n. 2
0
def file_post(user, project, fname):
    print(user, project, fname)
    content=request.form['content']
    print(user, project, fname, 'content is OK')
    if session['current_user']!=user:
        return render_template('file.html', f=content, fname=fname, user=user, project=project,
               error='Ви не маєте прав редагувати файл. Створіть відгалуження проекту чи реалізацію підзадачі')
        #show error message (fork/implement?)
    #save changes:
    print(user, project, fname, 'user check is OK')
    project_vfs=proj.project_by_name(user, project)
    print(user, project, fname, 'project_by_name is OK')
    project_vfs.save(fname, content)
    print(user, project, fname, 'save is OK')
    return redirect('.')
Esempio n. 3
0
def project_page(user, project):
    #project_vfs=proj.project_by_name(user, project)
    try:
        if request.args.get('mode')=='zip':
            # see https://docs.python.org/3/library/zipfile.html
            # generate zip archive (in /static/download directory)........
            zfname=rootdir+'static/'+user+'/'+project+'.zip'
            pr=project_by_name(user, project)
            with ZipFile(zfname, 'w') as zf:
                for filename in pr.get_all_files():
                    zf.writestr(filename, ''.join(pr.load(filename)).encode())
            # and download it:
            return redirect(zfname)
            pass
    except:
        pass
    #show files of the project
    #show subtasks list
    return render_template('project.html',
        is_current=session['current_user']==user if 'current_user' in session else False,
        **project_data(user, project))