Exemple #1
0
class Task(db.Model):
    __bind_key__ = 'goalsheet'

    id = db.Column(db.Integer, unique=True, nullable=False, primary_key=True)
    description = db.Column(db.String(1000), nullable=False)
    dtAssigned = db.Column(db.DateTime)
    dtCompleted = db.Column(db.DateTime)
    dateStart = db.Column(db.DateTime)
    dateEnd = db.Column(db.DateTime)
    manadator = db.Column(db.Boolean(), default=True)
    midyearSelfAssessment = db.Column(db.String(500))
    endyearSelfAssessment = db.Column(db.String(500))
    completionstatus = db.Column(db.String(40))
    personalNotes = db.Column(db.String(1000))
    goalId = db.Column(db.Integer, db.ForeignKey("goal.id"))
    goalSheetId = db.Column(
        db.Integer, db.ForeignKey("goal_sheet.id")
    )  # # Only for convenience, we can always traverse via the goal-section
    selfRating = db.Column(db.Integer, default=0)  #Self
    selfAssessment = db.Column(db.Integer, default=0)  #Self
    l1Rating = db.Column(db.Integer, default=0)  #L1 Manager
    l1Assessment = db.Column(db.Integer, default=0)
    l2Rating = db.Column(db.Integer, default=0)  #L2 - DC-Lead
    l2Assessment = db.Column(db.Integer, default=0)
    l3Rating = db.Column(db.Integer,
                         default=0)  #L3 - mgmt - Sridhar/Sriram/Suresh
    l3Assessment = db.Column(db.Integer, default=0)
    pubRating = db.Column(
        db.Integer,
        default=0)  #What is show to the end user and/or used for calculation
    pubAssessment = db.Column(
        db.Integer,
        default=0)  #pub* may not be used, putting it just to be sure
    weight = db.Column(db.FLOAT, default=0)
    score = db.Column(db.FLOAT, default=0)
Exemple #2
0
class AssignmentTemplate(db.Model):
    __bind_key__ = 'goalsheet'

    id = db.Column(db.Integer, unique=True, nullable=False, primary_key=True)
    title = db.Column(
        db.String(240), nullable=False
    )  # Name of the template .e.g. Principal Consultant Goals
    description = db.Column(db.String(1000),
                            nullable=False)  # Description of the template
    finalized = db.Column(db.Boolean(), default=False)
Exemple #3
0
class HrmsDocument(db.Model):
    __bind_key__ = 'hrmsdocuments'

    id = db.Column(db.Integer, unique=True, nullable=False, primary_key=True)
    empEmail = db.Column(
        db.String(200))  #Employee email, after look-up by name
    fileName = db.Column(
        db.String(256))  # FileName as given by the user (for downloading)
    storedFileName = db.Column(db.String(1024))  # FileName as stored on disk
    dateStored = db.Column(db.DateTime)
    retentionDays = db.Column(db.Integer, default=0)  #  number of days to keep
    encrypted = db.Column(db.Boolean(), default=False)
    archived = db.Column(db.Boolean(), default=False)

    #Lets store the linking information along with the file-data instead of the element data
    #This allows for adding file-attachments to existing elements without modifying them
    #Defined types: Task = 1, Comments = 2
    linkedToType = db.Column(db.Integer, default=0)  # Task, Comment, etc.
    linkedToId = db.Column(db.Integer, default=0)  # Id of Task, comment, etc.
Exemple #4
0
class FeedbackFromAnyone(db.Model):
    __bind_key__ = 'goalsheet'
    #Generic ID
    id = db.Column(db.Integer, unique=True, nullable=False, primary_key=True)
    #About which Item?
    elementId = db.Column(db.Integer,
                          nullable=False)  # ID of the Sheet, goal, task
    elementType = db.Column(db.Integer,
                            nullable=False)  # Is it a Sheet, goal, task Id?
    # Who, to Whom?
    giverEmail = db.Column(db.String(200),
                           nullable=False)  # Emp giving the feedback
    receiverEmail = db.Column(db.String(200),
                              nullable=False)  # Emp getting the feedback

    # Role of the giver e.g.: Project Manager, team member, etc.
    role = db.Column(db.String(200), nullable=True)
    # Relationship of the giver with the receiver e.g. colleague, direct reportee, reported directly, etc.
    relationship = db.Column(db.String(200), nullable=False)
    comment = db.Column(
        db.String(1000),
        nullable=False)  # Entered by person requesting feedback
    feedback = db.Column(db.String(1000),
                         nullable=False)  # Entered by person giving feedback
    status = db.Column(db.String(30),
                       nullable=False)  # Requested, Given, withdrawn?
    # Who can see this?
    visibleToEmp = db.Column(db.Boolean(),
                             default=True)  # Is it visible to employee?
    visiblityLevel = db.Column(
        db.Integer, default=0)  # At what level can an employee see this?
    #When
    dateRecorded = db.Column(
        db.DateTime, nullable=False)  # Date/Time when the feedback was given
    #Which Assessment Year?
    assessmentYear = db.Column(db.String(10), nullable=False)

    #Notification flags, needed as notifications will go in batchs
    empNotified = db.Column(db.Boolean(),
                            default=False)  # Employee has been notified
    empNotifiedTime = db.Column(db.DateTime)  # Employee last notified
    l1Notified = db.Column(db.Boolean(),
                           default=False)  # Manager/DC has been notified
    l2Notified = db.Column(db.Boolean(),
                           default=False)  # 2nd-line has been notified
    l3pNotified = db.Column(db.Boolean(),
                            default=False)  # HR has been notified
    renotifyEmp = db.Column(db.Boolean(),
                            default=False)  # Resend emails to employee
    renotifyNonEmp = db.Column(
        db.Boolean(), default=False)  # Resend emails to managers/others
Exemple #5
0
class Goal(db.Model):
    __bind_key__ = 'goalsheet'

    id = db.Column(db.Integer, unique=True, nullable=False, primary_key=True)
    title = db.Column(db.String(240), nullable=False)
    description = db.Column(db.String(1000), nullable=False)
    empId = db.Column(
        db.Integer
    )  #  # Only for convenience, we can always traverse via the goal-sheet->section
    targetSet = db.Column(db.String(500))
    midYearTargetAchieved = db.Column(db.String(500))
    midyearSelfAssessment = db.Column(db.String(500))
    midYearManagerFeedback = db.Column(db.String(500))
    midYeardcFeedback = db.Column(db.String(500))
    midYearFinalFeedback = db.Column(db.String(500))

    selfRating = db.Column(db.Integer)
    managerRating = db.Column(db.Integer)
    dcLeadRating = db.Column(db.Integer)
    finalRating = db.Column(db.Integer)
    endYearTargetAchieved = db.Column(db.String(500))
    endyearSelfAssessment = db.Column(db.String(500))
    endYearManagerFeedback = db.Column(db.String(500))
    endYeardcFeedback = db.Column(db.String(500))
    endYearFinalFeedback = db.Column(db.String(500))

    managerFeedback = db.Column(db.String(500))
    dcFeedback = db.Column(db.String(500))

    dateStart = db.Column(db.DateTime)
    dateEnd = db.Column(db.DateTime)

    manadator = db.Column(db.Boolean(), default=True)
    masterGoalId = db.Column(db.Integer)
    dtAssigned = db.Column(db.DateTime)
    dtCompleted = db.Column(db.DateTime)
    dcapprovalstatus = db.Column(db.String(40))
    hrintimationstatus = db.Column(db.String(40))
    completionstatus = db.Column(db.String(40))
    goalSectionId = db.Column(db.Integer, db.ForeignKey("goal_section.id"))
    goalSheetId = db.Column(
        db.Integer, db.ForeignKey("goal_sheet.id")
    )  # Only for convenience, we can always traverse via the goal-section
    weight = db.Column(db.FLOAT, default=0)
    score = db.Column(db.FLOAT, default=0)
class GoalFeedback(db.Model):
    __bind_key__ = 'goalsheet'
    #Generic ID
    id = db.Column(db.Integer, unique=True, nullable=False, primary_key=True)
    #About which Item?
    elementId = db.Column(db.Integer,
                          nullable=False)  # ID of the Sheet, goal, task
    elementType = db.Column(db.Integer,
                            nullable=False)  # Is it a Sheet, goal, task Id?
    # Who, to Whom?
    giverEmpId = db.Column(db.Integer,
                           nullable=False)  # Emp giving the feedback
    receiverEmpId = db.Column(db.Integer,
                              nullable=False)  # Emp getting the feedback
    #What
    feedback = db.Column(db.String(1000), nullable=False)
    # Who can see this?
    visibleToEmp = db.Column(db.Boolean(),
                             default=False)  # Is it visible to employee?
    visiblityLevel = db.Column(
        db.Integer, nullable=False)  # At what level can an employee see this?
    #When
    dateRecorded = db.Column(
        db.DateTime, nullable=False)  # Date/Time when the feedback was given
    #    phaseId = db.Column(db.Integer) # Phase ID - How can we find this?, Is it relavent?
    #Which Assessment Year?
    assessmentYear = db.Column(db.String(10), nullable=False)

    #Notification flags, needed as notifications will go in batchs
    empNotified = db.Column(db.Boolean(),
                            default=False)  # Employee has been notified
    l1Notified = db.Column(db.Boolean(),
                           default=False)  # Manager/DC has been notified
    l2Notified = db.Column(db.Boolean(),
                           default=False)  # 2nd-line has been notified
    l3pNotified = db.Column(db.Boolean(),
                            default=False)  # HR has been notified
    renotifyEmp = db.Column(db.Boolean(),
                            default=False)  # Resend emails to employee
    renotifyNonEmp = db.Column(
        db.Boolean(), default=False)  # Resend emails to managers/others
class GoalCalendar(db.Model):
    __bind_key__ = 'goalsheet'

    id = db.Column(db.Integer, unique=True, nullable=False, primary_key=True)
    phase = db.Column(db.String(80), nullable=False)  # Phase name
    phaseType = db.Column(
        db.Integer, default=0
    )  # Phase TYPE: Data-entry, Feedback, Feedback+Review, Review, Emp.Specific
    sheetStatus = db.Column(db.String(40), nullable=False, default="Assigned")
    actionString = db.Column(db.String(80),
                             nullable=False,
                             default="No Action Required")
    actionId = db.Column(db.Integer, default=0)  # 0 = Do nothing
    empEmail = db.Column(
        db.Integer, default=0
    )  # Non-Zero Number referres to an employee specific Phase, to handle exceptions
    description = db.Column(db.String(500), nullable=False)
    assessmentYear = db.Column(db.String(10), nullable=False)
    dateStart = db.Column(db.DateTime)  # Both days are INCLUSIVE
    dateEnd = db.Column(db.DateTime)

    authlevel = db.Column(db.Integer, default=0)
    gs_enable_assignment = db.Column(db.Boolean(), default=False)

    # Sheet-Flags
    gs_enable_self = db.Column(db.Boolean(), default=False)
    gs_enable_approve = db.Column(db.Boolean(), default=False)
    gs_enable_end_year_self = db.Column(db.Boolean(), default=False)
    gs_enable_end_year_dc_approve = db.Column(db.Boolean(), default=False)
    gs_enable_end_year_closure = db.Column(db.Boolean(), default=False)

    # Goal-Flags
    goal_enable_task_approve = db.Column(db.Boolean(), default=False)
    goal_enable_edit = db.Column(db.Boolean(), default=False)
    goal_enable_approve = db.Column(db.Boolean(), default=False)

    # Task-Flags
    task_enable_update = db.Column(db.Boolean(), default=False)
    task_enable_delete = db.Column(db.Boolean(), default=False)
    task_enable_activity_edit = db.Column(
        db.Boolean(), default=False)  # Also allows for marking it as complete

    #Task File -upload, ask-feedback flags, default set to true
    file_upload_enable = db.Column(db.Boolean(),
                                   default=True)  # Enable File-Upload Button
    task_file_download_enable = db.Column(
        db.Boolean(), default=False)  # Enable File-Upload Button
    ask_feedback_enable = db.Column(
        db.Boolean(), default=True)  # Enable Ask-For-Feeback button

    task_enable_status_change = db.Column(db.Boolean(), default=False)