Example #1
0
    def post(self, project_id):
        forms = {}
        for field in ['projectname', 'description', 'version']:
            if field in self.request.arguments.keys():
                forms[field] = self.request.arguments[field][0]

        pdb = Projects()

        # Existing project.
        if int(project_id) != pdb.predict_next_rowid():
            project = pdb.get(project_id)
            project_is_new = False
        # New project
        else:
            project = {}
            project['active'] = 0
            project['projpath'] = None
            project_is_new = True

        if 'projectname' not in forms or \
           len(forms['projectname']) == 0:
            project['projectname'] = "Unnamed Project"
        else:
            project['projectname'] = forms['projectname'].strip()

        if 'description' in forms:
            project['description'] = forms['description'].strip()
        else:
            project['description'] = ''

        if 'version' in forms:
            project['version'] = forms['version'].strip()
        else:
            project['version'] = ''

        # if there's no proj dir yet, create an empty one
        if not project['projpath']:
            directory = self.get_project_dir()
            pname = project['projectname']
            project['projpath'] = _get_unique_name(directory, pname)

        if project_is_new:
            pdb.new(project)
            os.mkdir(project['projpath'])
        else:
            for key, value in project.iteritems():
                pdb.set(project_id, key, value)
            pdb.modified(project_id)

        # Update project settings.
        proj = Project(project['projpath'])
        dummy = proj.get_info()  # Just to get required keys.
        info = {}
        for key in dummy:
            info[key] = project[key]
        proj.set_info(info)

        self.redirect("/workspace/project?projpath=" + project['projpath'])
Example #2
0
    def post(self, project_id):
        forms = {}
        for field in ['projectname', 'description', 'version']:
            if field in self.request.arguments.keys():
                forms[field] = self.request.arguments[field][0]

        pdb = Projects()

        # Existing project.
        if int(project_id) != pdb.predict_next_rowid():
            project = pdb.get(project_id)
            project_is_new = False
        # New project
        else:
            project = {}
            project['active'] = 0
            project['projpath'] = None
            project_is_new = True

        if 'projectname' not in forms or \
           len(forms['projectname']) == 0:
            project['projectname'] = "Unnamed Project"
        else:
            project['projectname'] = forms['projectname'].strip()

        if 'description' in forms:
            project['description'] = forms['description'].strip()
        else:
            project['description'] = ''

        if 'version' in forms:
            project['version'] = forms['version'].strip()
        else:
            project['version'] = ''

        # if there's no proj dir yet, create an empty one
        if not project['projpath']:
            directory = self.get_project_dir()
            pname = project['projectname']
            project['projpath'] = _get_unique_name(directory, pname)

        if project_is_new:
            pdb.new(project)
            os.mkdir(project['projpath'])
        else:
            for key, value in project.iteritems():
                pdb.set(project_id, key, value)
            pdb.modified(project_id)

        # Update project settings.
        proj = Project(project['projpath'])
        dummy = proj.get_info()  # Just to get required keys.
        info = {}
        for key in dummy:
            info[key] = project[key]
        proj.set_info(info)

        self.redirect("/workspace/project?projpath=" + project['projpath'])
    def post(self, project_id):
        forms = {}
        for field in ['projectname', 'description', 'version']:
            if field in self.request.arguments.keys():
                forms[field] = self.request.arguments[field][0]

        pdb = Projects()

        # Existing project.
        if int(project_id) != pdb.predict_next_rowid():
            project = pdb.get(project_id)
            project_is_new = False
        # New project
        else:
            project = {}
            project['active'] = 0
            project['projpath'] = None
            project_is_new = True

        if 'projectname' not in forms or \
           len(forms['projectname']) == 0:
            project['projectname'] = "Unnamed Project"
        else:
            project['projectname'] = forms['projectname'].strip()

        if 'description' in forms:
            project['description'] = forms['description'].strip()
        else:
            project['description'] = ''

        if 'version' in forms:
            project['version'] = forms['version'].strip()
        else:
            project['version'] = ''
            
        directory = forms.get('directory', self.get_project_dir())

        # if there's no proj dir yet, create an empty one
        if not project['projpath']:

            version = project['version']
            pname = project['projectname']

            if len(version):
                filename = clean_filename('%s-%s' % (pname, version))
            else:
                filename = clean_filename(pname)

            unique = filename
            i = 1
            while os.path.exists(os.path.join(directory, unique)):
                unique = '%s_%s' % (filename, str(i))
                i = i+1

            project['projpath'] = os.path.join(directory, unique)

        if project_is_new:
            pdb.new(project)
            os.mkdir(project['projpath'])
        else:
            for key, value in project.iteritems():
                pdb.set(project_id, key, value)
            pdb.modified(project_id)

        # Update project settings.
        proj = Project(project['projpath'])
        dummy = proj.get_info()  # Just to get required keys.
        info = {}
        for key in dummy:
            info[key] = project[key]
        proj.set_info(info)

        self.redirect("/workspace/project?projpath=" + project['projpath'])
    def post(self, project_id):

        forms = {}
        for field in ['projectname', 'description', 'version']:
            if field in self.request.arguments.keys():
                forms[field] = self.request.arguments[field][0]
                
        pdb = Projects()
        
        # Existing project.
        if int(project_id) != pdb.predict_next_rowid():
            project = pdb.get(project_id)
            project_is_new = False
        # New project
        else:
            project = {}
            project['active'] = 0
            project['filename'] = None
            project_is_new = True
        
        if 'projectname' not in forms or \
           len(forms['projectname']) == 0:
            project['projectname'] = "Unnamed Project"
        else:
            project['projectname'] = forms['projectname'].strip()
            
        if 'description' in forms:
            project['description'] = forms['description'].strip()
        else:
            project['description'] =  ''
            
        if 'version' in forms:
            project['version'] = forms['version'].strip()
        else:
            project['version'] =  ''
        
        # if there's no proj file yet, create en empty one
        if not project['filename']:
            
            version = project['version']
            pname = project['projectname']
            
            if len(version):
                filename = '%s-%s' % (pname, version)
            else:
                filename = '%s' % pname
            filename = clean_filename(filename)
            
            unique = '%s.proj' % filename
            i = 1
            while os.path.exists(os.path.join(self.get_project_dir(), \
                                              unique)):
                unique = '%s_%s.proj' % (filename, str(i))
                i = i+1
                
            with open(os.path.join(self.get_project_dir(), unique), 'w') as out:
                out.write('')
                out.close()
                
            project['filename'] = unique
            print 'created file:', pname, unique

        if project_is_new:
            pdb.new(project)
        else:
            for key, value in project.iteritems():
                pdb.set(project_id, key, value)
            pdb.modified(project_id)
        
        self.redirect(self.request.uri)
Example #5
0
    def post(self, project_id):
        forms = {}
        for field in ['projectname', 'description', 'version']:
            if field in self.request.arguments.keys():
                forms[field] = self.request.arguments[field][0]

        pdb = Projects()

        # Existing project.
        if int(project_id) != pdb.predict_next_rowid():
            project = pdb.get(project_id)
            project_is_new = False
        # New project
        else:
            project = {}
            project['active'] = 0
            project['filename'] = None
            project_is_new = True

        if 'projectname' not in forms or \
           len(forms['projectname']) == 0:
            project['projectname'] = "Unnamed Project"
        else:
            project['projectname'] = forms['projectname'].strip()

        if 'description' in forms:
            project['description'] = forms['description'].strip()
        else:
            project['description'] = ''

        if 'version' in forms:
            project['version'] = forms['version'].strip()
        else:
            project['version'] =''

        # if there's no proj file yet, create en empty one
        if not project['filename']:

            version = project['version']
            pname = project['projectname']

            if len(version):
                filename = '%s-%s' % (pname, version)
            else:
                filename = '%s' % pname
            filename = clean_filename(filename)

            unique = '%s.proj' % filename
            i = 1
            while os.path.exists(os.path.join(self.get_project_dir(), \
                                              unique)):
                unique = '%s_%s.proj' % (filename, str(i))
                i = i+1

            with open(os.path.join(self.get_project_dir(), unique), 'w') as out:
                out.write('')
                out.close()

            project['filename'] = unique

        if project_is_new:
            pdb.new(project)
        else:
            for key, value in project.iteritems():
                pdb.set(project_id, key, value)
            pdb.modified(project_id)

        self.redirect(self.request.uri)