예제 #1
0
def addFolder(params):
    logging.info('addFolder(): Start')

    folder = Folder(parent=genFolderParentKey(
    ))  #Create a datastore entity with parent as the key generated above

    #assign form data to entity properties
    if 'name' in params:
        folder.name = params['name']
    else:
        folder.name = 'Folder'

    if 'icon' in params:
        folder.icon = params['icon']
    else:
        folder.icon = '/images/folder-icon.png'

    if 'color' in params:
        folder.color = params['color']
    else:
        folder.color = 'Default'

    folder.date_c = datetime.datetime.now()
    folder.date_m = datetime.datetime.now()
    folder.n_items = 0  #this value needs to be calculated and populated.

    if 'view' in params:
        folder.view = params['view']
    else:
        folder.view = 'Default'

    if 'parent_folder_key' in params:
        folder.parent_folder = params['parent_folder_key']
        folder.path = params['parent_folder_key'].get(
        ).path + folder.name + '/'  #calculate path from parent folder and save - parent folder path + my name

        #increment parent folder's items count and save. Do it only  if current folder is not root,
        params['parent_folder_key'].get().n_items += 1
        params['parent_folder_key'].get().put()

        #TODO if no parent folder mentioned, set parent as links

    logging.info('Adding Folder - ' + folder.name)

    new_folder_key = folder.put()  #save the folder and capture the key

    return new_folder_key  # return the folder key
def compile_java(file_id):
    #first traslate
    traslate_java(file_id)

    file = File.objects.get(id=file_id)
    folder = file.folder
    user = folder.user
    galatea_code = GALATEA + "galatea.jar "
    code = "javac -cp "+ galatea_code + folder.path + "/*.java"
    #print code
    value = subprocess.check_output([code], shell=True)
    #print value

    #get all the file in this folder
    for root, dirs, files in os.walk(folder.path):
        root_folder = Folder.objects.get(path=root, name = os.path.basename(root))
        for dir in dirs:
            folders = Folder.objects.filter(father=root_folder.id)
            esta = False
            for folder in folders:
                if folder.name == dir:
                    esta = True
            if not esta:
                folder = Folder()
                folder.name = dir
                folder.path = root_folder.path + "/" + dir
                folder.user = user
                folder.father = root_folder.id
                folder.active = True
                folder.save()
        #print dirs
        for file in files:
            files_folder = File.objects.filter(folder = root_folder.id)
            esta = False
            for f in files_folder:
                if f.name == file:
                    esta = True
            if not esta:
                if (os.path.splitext(file)[1] != ".class"):
                    f = File()
                    f.name = file
                    f.folder = root_folder
                    f.active = True
                    f.save()

    return value
def create_root_folder(user_id):
	root = MEDIA_ROOT
	user = User.objects.get(id=user_id)
	directory = root +"/"+ user.username
	print directory
	if not os.path.exists(directory):
		try:
			folder = Folder()
			folder.name = user.username
			folder.path = directory
			folder.user = user
			folder.save()
			os.makedirs(directory)
		except Exception, e:
			return False
		else:
			return True
예제 #4
0
def addRootFolder():
    logging.info('addRootFolder(): Start')

    folder = Folder(parent=genFolderParentKey(
    ))  #Create a datastore entity with parent as the key generated above

    #No need of param checks as the call is guaranteed to be internal.
    folder.name = "root"
    folder.icon = None
    folder.color = None
    folder.date_c = datetime.datetime.now()
    folder.date_m = datetime.datetime.now()
    folder.n_items = 0  #this value needs to be calculated and populated.
    folder.view = None
    folder.path = '/'
    folder.parent_folder = None

    return folder.put()
def create_new_folder(user_id,father_id,name):
	root = MEDIA_ROOT
	user = User.objects.get(id=user_id)
	father = Folder.objects.get(id=father_id)
	directory = father.path +"/"+ name
	id_folder = 0
	print directory
	if not os.path.exists(directory):
		try:
			folder = Folder()
			folder.name = name
			folder.path = directory
			folder.user = user
			folder.father = father.id
			folder.active = True
			folder.save()
			id_folder = folder.id
			os.makedirs(directory)
		except Exception, e:
			return id_folder
		else:
			return id_folder