Esempio n. 1
0
 def delete_person_from_project(cls, username, password, project, person):
     """
     The removal of the contractor from the project
     :param username: username of creator
     :param password: creator password
     :param person: person to delete
     :param project: project name
     :return:
     """
     log = logger.get_logger(ProjectController.log_tag)
     project = ProjectStorage.get_project(project)
     admin = UserStorage.get_user_by_name(username)
     person = UserStorage.get_user_by_name(person)
     if admin.password == password:
         if ProjectStorage.is_admin(admin, project) == 0:
             guys = ProjectStorage.get_all_persons_in_project(project)
             have = False
             if guys[0][0] == person.user_id:
                 log.error(
                     "User was tried to delete a creator of the project")
                 raise CannotDeleteCreator
             for i in range(len(guys)):
                 if guys[i][0] == person.user_id:
                     have = True
             if not have:
                 log.error("User is not exist")
                 raise UserIsNotExistInProject
             else:
                 ProjectStorage.delete_person_from_project(person, project)
         else:
             log.error("You are not the Creator of the project")
             raise UAreNotAdmin
     else:
         log.error("Incorrect password for {}".format(username))
         raise WrongPassword
Esempio n. 2
0
 def add_person_to_project(cls, username, password, project, person):
     """
     Adds an artist to the project
     :param username: name of project creator
     :param password: creator password
     :param person: the name of the user you want to add to the project
     :param project: project name
     :return:
     """
     log = logger.get_logger(ProjectController.log_tag)
     project = ProjectStorage.get_project(project)
     admin = UserStorage.get_user_by_name(username)
     person = UserStorage.get_user_by_name(person)
     if admin.password == password:
         if ProjectStorage.is_admin(admin, project) == 0:
             userlist = ProjectStorage.get_all_persons_in_project(project)
             have = False
             for i in userlist:
                 if i[0] == person.user_id:
                     have = True
             if not have:
                 ProjectStorage.add_person_to_project(person, project)
             else:
                 log.error(
                     "User {} is already exist in this project".format(
                         username))
                 raise UserAlreadyExistInProject
         else:
             log.error("You are not the Creator of the project")
             raise UAreNotAdmin
     else:
         log.error("Incorrect password for {}".format(username))
         raise WrongPassword
Esempio n. 3
0
 def create(cls, username, password, name, description):
     """
     Create a project with a specified name and description
     :param username: user, who want to create a new project
     :param password: user password
     :param name: name of new project
     :param description: description of new project
     :return:
     """
     log = logger.get_logger(ProjectController.log_tag)
     user = UserStorage.get_user_by_name(username)
     if user.password == password:
         project = Project(name, description, user.user_id)
         ProjectStorage.add_project_to_db(project, user)
     else:
         log.error("Incorrect password for {}".format(username))
         raise WrongPassword
Esempio n. 4
0
 def edit_description(cls, username, password, project_name, new_desc):
     """
     Editing the project description
     :param username: name of project creator
     :param password: creator password
     :param project_name: name of the project to be changed
     :param new_desc: new description of project
     :return:
     """
     log = logger.get_logger(ProjectController.log_tag)
     person = UserStorage.get_user_by_name(username)
     project = ProjectStorage.get_project(project_name)
     if person.password == password:
         ProjectStorage.is_admin(person, project)
         project.description = new_desc
         ProjectStorage.save(project)
     else:
         log.error("Incorrect password for {}".format(username))
         raise WrongPassword
Esempio n. 5
0
 def su_delete_person_from_project(cls, username, password, person,
                                   project):
     """
     Delete all the workers from the project, you can also delete the project Creator
     :param username: name of creator
     :param password: creator password
     :param person: person to delete
     :param project: project name
     :return:
     """
     log = logger.get_logger(ProjectController.log_tag)
     project = ProjectStorage.get_project(project)
     admin = UserStorage.get_user_by_name(username)
     person = UserStorage.get_user_by_id(person)
     if admin.password == password:
         ProjectStorage.is_admin(admin, project)
         guys = ProjectStorage.get_all_persons_in_project(project)
         have = False
         for i in range(len(guys)):
             if guys[i][0] == person.user_id:
                 have = True
         if not have:
             log.error("User is not exist")
             raise UserIsNotExistInProject
         else:
             ProjectStorage.delete_person_from_project(person, project)
     else:
         log.error("Incorrect password for {}".format(username))
         raise WrongPassword
Esempio n. 6
0
 def show_all(cls, username, password):
     """
     Displays a list of all projects with the participants of these projects
     :param username:
     :param password:
     :return:
     """
     log = logger.get_logger(ProjectController.log_tag)
     user = UserStorage.get_user_by_name(username)
     new_list = []
     if user.password == password:
         project_list = ProjectStorage.show_all()
         for i in project_list:
             have = False
             guys = ProjectStorage.get_all_persons_in_project(i)
             for j in guys:
                 if user.user_id == j[0]:
                     have = True
             if have:
                 new_list.append(i)
     else:
         log.error("Incorrect password for {}".format(username))
         raise WrongPassword
     return new_list
Esempio n. 7
0
 def get_all_columns(cls, project_name):
     """
     Get a list consisting of all columns included in the project
     :param project_name: the name of the project
     :return:
     """
     cols = []
     conn = sqlite3.connect(conf.get_path_to_db())
     c = conn.cursor()
     project = ProjectStorage.get_project(project_name)
     c.execute("SELECT * FROM columns WHERE project_id==('%s')" %
               project.id)
     data = c.fetchall()
     for i in data:
         column = Column(i[1], i[2], i[3], i[0])
         cols.append(column)
     return cols
Esempio n. 8
0
 def get_column(cls, project_name, name):
     """
     Get an instance of a class with the specified name
     :param project_name: the name of the project that contains the column
     :param name: the name of the column
     :return:
     """
     conn = sqlite3.connect(conf.get_path_to_db())
     c = conn.cursor()
     project = ProjectStorage.get_project(project_name)
     c.execute(
         "SELECT * FROM columns WHERE name==('%s') AND project_id==('%s')" %
         (name, project.id))
     data = c.fetchone()
     try:
         column = Column(data[1], data[2], data[3], data[0])
         conn.close()
         return column
     except:
         conn.close()
         raise NoColumnWithThisName
Esempio n. 9
0
 def delete(cls, username, password, name):
     """
     Deletes the project with the specified name
     :param username: user, creator of project
     :param password: user password
     :param name: name of project to delete
     :return:
     """
     log = logger.get_logger(ProjectController.log_tag)
     user = UserStorage.get_user_by_name(username)
     if user.password == password:
         project = ProjectStorage.get_project(name)
         ProjectStorage.check_permission(user, project)
         guys = ProjectStorage.get_all_persons_in_project(project)
         for i in guys:
             ProjectController.su_delete_person_from_project(
                 username, password, i, project.name)
         ProjectStorage.delete_with_object(project)
     else:
         log.error("Incorrect password for {}".format(username))
         raise WrongPassword
Esempio n. 10
0
 def create_table(cls):
     ProjectStorage.create_table()