Esempio n. 1
0
def force_integrity(request):
    """
        controller to force recreate the json heirarchy and also take care of
        dangling meta files, and create missing meta files
    """
    if request.method == "GET":
        for root, dirs, files in os.walk(DATABASE_DIR):
            for filename in files:
                if not filename.endswith('.zip'):
                    if filename.endswith('.meta'):
                        pathname = os.path.join(root, '.'.join(filename.split('.')[:-1]))
                        if not (os.path.isfile(pathname)):
                            os.remove(os.path.join(root, filename))
                    else:
                        metafilename = filename + '.meta'
                        metafile = os.path.join(root, metafilename)
                        if not (os.path.isfile(metafile)):
                            tags = generate_path_meta_tags(os.path.relpath(metafile, DATABASE_DIR))
                            with open(metafile,"w") as f:
                                f.write('\n'.join(tags))

        jsc.recreate_path(DATABASE_DIR, DATABASE_DICT_FILE_NAME)
        return redirect('/books/')
    else:
        return redirect('/books/')
Esempio n. 2
0
def finalize_approvals(request):
	"""
		controller to finalize all the approvals (calls the recreate path function from jsc)
		admin needs to click on finalize approvals once after manually pasting new files.
	"""
	if request.method == "GET":
		jsc.recreate_path(DATABASE_DIR, DATABASE_DICT_FILE_NAME)
		return redirect('/books/approve')
	else:
		return redirect('/books/approve')
Esempio n. 3
0
def approve_unapproved_document(request):
    fileName = request.GET.get('name', 'none')
    seperatedlist = fileName.split(SEPARATOR)
    try:
        destination = DATABASE_DIR
        for directory in seperatedlist:
            destination = destination + "/" + directory
        shutil.copy(UNAPPROVED_DIR + fileName, destination)
        jsc.recreate_path(DATABASE_DIR, DATABASE_DICT_FILE_NAME)
        return redirect('/books/remove_unapproved_document?name=' + fileName)
    except IOError as e:
        if e.errno != errno.ENOENT:
            raise
        os.makedirs(os.path.dirname(destination))
        shutil.copy(UNAPPROVED_DIR + fileName, destination)
        jsc.recreate_path(DATABASE_DIR, DATABASE_DICT_FILE_NAME)
        return redirect('/books/remove_unapproved_document?name=' + fileName)