def registerOrganization(self, request):
        """Regiter the Organization with Details"""
        user = endpoints.get_current_user()
        user_id = helper.getUserId()
        registeredUser = helper.getRegisteredUser()
        if registeredUser:
            raise endpoints.NotFoundException('User already registered')
        else:
            registeredUser = RegisteredUsers()
        globalOrganization = GlobalOrganization()
        orgCount = GlobalOrganization.query().count()

        globalOrganization.organizationNamespace = orgCount + 888
        organization = Organization()
        if request:
            for field in ('orgName', 'phoneNumber'):
                if hasattr(request, field):
                    val = getattr(request, field)
                    if val:
                        setattr(organization, field, str(val))

        organization.uniqueOrganizationName = globalOrganization.organizationNamespace
        organization.userID = user_id
        organization.emailID = user.email()
        organization.key = ndb.Key(Organization,
                                   globalOrganization.organizationNamespace)
        registeredUser.mainEmail = user.email()
        registeredUser.userName = user.nickname()
        self._saveOrganization(organization, registeredUser,
                               globalOrganization, user_id)

        return message_types.VoidMessage()
 def selfRegistration(self, request):
     user = endpoints.get_current_user()
     user_id = helper.getUserId()
     registeredUser = helper.getRegisteredUser()
     token = Token()
     if not registeredUser:
         registeredUser = RegisteredUsers()
         if request.orgKey:
             registeredUser.orgKey = ndb.Key(Organization, request.orgKey)
         else:
             raise endpoints.NotFoundException(
                 'Please give Organization key')
     else:
         raise endpoints.InternalServerErrorException(
             "User Already Registered")
     if request.studentKey:
         registeredUser.studentKey = ndb.Key(Student, request.studentKey)
         token.tokenNumber = random.randint(10000, 99999)
         token.studentKey = registeredUser.studentKey
     elif request.empKey:
         registeredUser.employeeKey = ndb.Key(Employee, request.empKey)
         token.tokenNumber = random.randint(10000, 99999)
         token.employeeKey = registeredUser.employeeKey
     registeredUser.key = ndb.Key(RegisteredUsers, user_id)
     print registeredUser
     registeredUser.put()
     token.put()
     return message_types.VoidMessage()
    def getStudent(self, request):
        user = endpoints.get_current_user()
        user_id = helper.getUserId()
        registeredUser = helper.getRegisteredUser()
        sectionKeyList = []
        if not registeredUser:
            raise endpoints.NotFoundException(
                'User is not registered to perform operation')
        namespace_manager.set_namespace(self._getNamespace(registeredUser))
        if not request.websafeKey:
            raise endpoints.NotFoundException('Not Valid Key')
        studentOutputForm1 = StudentOutputForm1()
        student = ndb.Key(urlsafe=request.websafeKey).get()
        studentOutputForm1.studentName = student.studentName
        studentOutputForm1.studentAge = student.studentAge
        studentOutputForm1.studentFees = student.studentFees
        studentOutputForm1.grade = self._copyGradestoForm(
            student.gradeKey.get())
        studentOutputForm1.subjects = self._getSubjectFormFromSubjetcKeyList(
            student.subjectKey)
        print 'student.sectionKey'
        print student.sectionKey
        sectionKeyList.append(student.sectionKey)
        print "sectionKeyList"
        print sectionKeyList
        studentOutputForm1.section = self._getSectionFormFromSectioncKeyList(
            sectionKeyList)[0]

        return studentOutputForm1
    def registerSubject(self, request):
        user = endpoints.get_current_user()
        user_id = helper.getUserId()
        registeredUser = helper.getRegisteredUser()
        if not registeredUser:
            raise endpoints.NotFoundException(
                'User is not registered to perform operation')
        print "registeredUser.orgKey.urlsafe()"
        print registeredUser.orgKey
        namespace_manager.set_namespace(self._getNamespace(registeredUser))
        if request.subjectWebSafeKey:
            subject_key = ndb.Key(urlsafe=request.subjectWebSafeKey)
            subject = subject_key.get()

        if request.code:
            subject = Subject()
            subject_key = ndb.Key(Subject, str(request.code))
            subject.key = subject_key
        else:
            raise endpoints.NotFoundException('Not a valid code')

        if request:
            if request.name:
                setattr(subject, 'name', str(request.name))
            else:
                raise endpoints.BadRequestException("Section Name Required")
            if request.code:
                setattr(subject, 'code', str(request.code))
            else:
                raise endpoints.BadRequestException("Subject Code Required")

        subject.put()
        return message_types.VoidMessage()
 def registerEmployee(self, request):
     user = endpoints.get_current_user()
     user_id = helper.getUserId()
     registeredUser = helper.getRegisteredUser()
     if not registeredUser:
         raise endpoints.NotFoundException(
             'User is not registered to perform operation')
     namespace_manager.set_namespace(self._getNamespace(registeredUser))
     organization = registeredUser.orgKey.get()
     if request.employeeWebSafeKey:
         employee = ndb.Key(urlsafe=request.employeeWebSafeKey).get()
     else:
         employee = Employee()
         organization.employeeCount = organization.employeeCount + 1
         employee.enrollementNumber = organization.employeeCount
     if request:
         for field in ('name', 'address'):
             if hasattr(request, field):
                 val = getattr(request, field)
                 if val:
                     setattr(employee, field, str(val))
     employee.orgKey = registeredUser.orgKey
     employee.createdBy = registeredUser.key
     employee.key = ndb.Key(Employee, organization.employeeCount)
     kind = []
     kind.append(employee)
     kind.append(organization)
     self._saveKinds(kind)
     return message_types.VoidMessage()
 def registerSectionToGrade(self, request):
     user = endpoints.get_current_user()
     user_id = helper.getUserId()
     registeredUser = helper.getRegisteredUser()
     if not registeredUser:
         raise endpoints.NotFoundException(
             'User is not registered to perform operation')
     namespace_manager.set_namespace(self._getNamespace(registeredUser))
     if request.sectionWebSafeKey:
         section = ndb.Key(urlsafe=request.sectionWebSafeKey).get()
     else:
         if request.gradeWebSafeKey:
             section = Section()
             section_id = Section.allocate_ids(
                 size=1,
                 parent=ndb.Key(
                     urlsafe=getattr(request, 'gradeWebSafeKey')))[0]
             section_key = ndb.Key(
                 Section,
                 section_id,
                 parent=ndb.Key(
                     urlsafe=getattr(request, 'gradeWebSafeKey')))
             section.key = section_key
         else:
             raise endpoints.NotFoundException('Not a valid Grade')
     if request:
         if request.name:
             setattr(section, 'name', str(request.name))
             setattr(section, 'nameUpper', str(request.name).upper())
         else:
             raise endpoints.BadRequestException("Section Name Required")
     section.put()
     return message_types.VoidMessage()
    def registerOrganization(self, request):
        """Regiter the Organization with Details"""
        user = endpoints.get_current_user()
        user_id = helper.getUserId()
        registeredUser = helper.getRegisteredUser()
        if registeredUser:
            raise endpoints.NotFoundException('User already registered')
        else:
            registeredUser = RegisteredUsers()
        organization = Organization()
        if request:
            for field in ('orgName', 'phoneNumber'):
                if hasattr(request, field):
                    val = getattr(request, field)
                    if val:
                        setattr(organization, field, str(val))

        uniqueOrganizationName = str(request.orgName).upper()
        for i in range(1000):
            if Organization.query(Organization.uniqueOrganizationName ==
                                  uniqueOrganizationName).fetch():
                uniqueOrganizationName = uniqueOrganizationName + str(i)
            else:
                break

        organization.uniqueOrganizationName = uniqueOrganizationName
        organization.userID = user_id
        organization.emailID = user.email()

        self._saveOrganization(organization, registeredUser, user_id)

        return message_types.VoidMessage()
    def registerSubject(self, request):
        user = endpoints.get_current_user()
        user_id = helper.getUserId()
        registeredUser = helper.getRegisteredUser()
        if not registeredUser:
            raise endpoints.NotFoundException(
                'User is not registered to perform operation')
        print "registeredUser.orgKey.urlsafe()"
        print registeredUser.orgKey
        namespace_manager.set_namespace(self._getNamespace(registeredUser))
        if request.subjectWebSafeKey:
            subject_key = ndb.Key(urlsafe=request.subjectWebSafeKey)
            subject = subject_key.get()
        else:
            if request.code:
                subject = Subject()
                # subject_id = Subject.allocate_ids(size=1, parent=ndb.Key(urlsafe=getattr(request, 'gradeWebSafeKey')))[0]
                subject_key = ndb.Key(Subject, str(request.code))
                subject.key = subject_key
            else:
                raise endpoints.NotFoundException('Not a valid code')
        if request:
            for field in ('name', 'code', 'book'):
                if hasattr(request, field):
                    val = getattr(request, field)
                    if val:
                        setattr(subject, field, val)
            if not request.mandatory:
                subject.mandatory = request.mandatory
            subject.nameUpper = str(request.name).upper()
            subject.organizerUserId = registeredUser.orgKey
            subject.put()

        return message_types.VoidMessage()
 def getStudents(self, request):
     user = endpoints.get_current_user()
     user_id = helper.getUserId()
     registeredUser = helper.getRegisteredUser()
     if not registeredUser:
         raise endpoints.NotFoundException(
             'User is not registered to perform operation')
     namespace_manager.set_namespace(self._getNamespace(registeredUser))
     students = Student.query().fetch()
     return StudentsOutputForm(students=[
         self._copyStudentsToForm(student) for student in students
     ])
 def giveAttendenceToStudent(self, request):
     user = endpoints.get_current_user()
     user_id = helper.getUserId()
     registeredUser = helper.getRegisteredUser()
     if not registeredUser:
         raise endpoints.ForbiddenException("Not Allowed to update user")
     if not (registeredUser.isAdmin == True or registeredUser.isOwner
             == True or registeredUser.isTeacher == True):
         raise endpoints.ForbiddenException("Not Allowed to update user")
     namespace_manager.set_namespace(self._getNamespace(registeredUser))
     print request.studentWebSafeKey
     studentAttendenceKey = ndb.Key(
         StudentAttendence,
         request.date,
         parent=ndb.Key(urlsafe=request.studentWebSafeKey))
     print studentAttendenceKey
     studentAttendence = studentAttendenceKey.get()
     print studentAttendence
     if not studentAttendence:
         studentAttendence = StudentAttendence()
     print studentAttendence
     studentAttendence.isPresent = True if request.isPresent == True else False
     studentAttendence.date = datetime.datetime.strptime(
         request.date, '%d-%m-%Y').date()
     studentAttendence.employeeKey = registeredUser.key
     studentAttendence.key = studentAttendenceKey
     studentAttendence.studentKey = ndb.Key(
         urlsafe=request.studentWebSafeKey)
     #         student = ndb.Key(urlsafe=request.studentWebSafeKey).get()
     #         attendencePercentage = StudentAttendence.all()
     #         attendencePercentage = attendencePercentage.ancestor(ndb.Key(urlsafe=request.studentWebSafeKey))
     studentAttendence1 = StudentAttendence.query(ancestor=ndb.Key(
         urlsafe=request.studentWebSafeKey))
     totalAttendence = 0.0
     totalPresent = 0.0
     for s in studentAttendence1:
         totalAttendence = totalAttendence + 1
         print s.isPresent
         if s.isPresent == True:
             totalPresent = totalPresent + 1
     print totalAttendence
     print totalPresent
     attendencePercentage = (totalPresent / totalAttendence) * 100
     student = ndb.Key(urlsafe=request.studentWebSafeKey).get()
     student.attendencePercentage = attendencePercentage
     kind = []
     kind.append(student)
     kind.append(studentAttendence)
     self._saveKinds(kind)
     print datetime.date.today()
     print studentAttendence
     return message_types.VoidMessage()
    def registerStudent(self, request):
        user = endpoints.get_current_user()
        user_id = helper.getUserId()
        registeredUser = helper.getRegisteredUser()
        if not registeredUser:
            raise endpoints.NotFoundException(
                'User is not registered to perform operation')
        namespace_manager.set_namespace(self._getNamespace(registeredUser))
        organization = registeredUser.orgKey.get()
        if request.studentWebSafeKey:
            student = ndb.Key(urlsafe=request.studentWebSafeKey).get()
        else:
            student = Student()
            organization.studentCount = organization.studentCount + 1
            setattr(student, 'serialNumber', organization.studentCount)
            setattr(student, 'key', ndb.Key(Student,
                                            organization.studentCount))
        if request:
            if request.studentName:
                setattr(student, 'studentName', str(request.studentName))
            else:
                raise endpoints.BadRequestException(
                    "studentName Name Required")
            if request.studentAge:
                setattr(student, 'studentAge', str(request.studentAge))
            else:
                raise endpoints.BadRequestException("studentAge Name Required")
            if request.gradeWebSafeKey:
                setattr(student, 'gradeKey',
                        ndb.Key(urlsafe=request.gradeWebSafeKey))
            if request.sectionWebSafeKey:
                setattr(student, 'sectionKey',
                        ndb.Key(urlsafe=request.sectionWebSafeKey))
            if request.subjectWebSafeKey:
                for subjectWebSafeKey in request.subjectWebSafeKey:
                    if ndb.Key(urlsafe=subjectWebSafeKey
                               ) not in student.subjectKey:
                        student.subjectKey.append(
                            ndb.Key(urlsafe=subjectWebSafeKey))
        setattr(student, 'createdBy', registeredUser.key)
        setattr(student, 'createdOn', datetime.datetime.now())

        kind = []
        kind.append(student)
        kind.append(organization)
        self._saveKinds(kind)
        d = self._create_document()
        d.studentAge = student.studentAge
        d.studentName = student.studentAge
        index = search.Index('student')
        index.put(d)
        return message_types.VoidMessage()
示例#12
0
    def registerSection(self, request):
        user = endpoints.get_current_user()
        user_id = helper.getUserId()
        registeredUser = helper.getRegisteredUser()
        if not registeredUser:
            raise endpoints.NotFoundException(
                'User is not registered to perform operation')
        namespace_manager.set_namespace(self._getNamespace(registeredUser))
        if request.delete == True:
            if request.sectionWebSafeKey:
                section_key = ndb.Key(urlsafe=request.sectionWebSafeKey)
                section_key.delete()
            else:
                endpoints.NotFoundException('Not a valid section key')
            return message_types.VoidMessage()
        if request.sectionWebSafeKey:
            section = ndb.Key(urlsafe=request.sectionWebSafeKey).get()
        else:
            if request.gradeWebSafeKey:
                section = Section()
                section_id = Section.allocate_ids(
                    size=1,
                    parent=ndb.Key(
                        urlsafe=getattr(request, 'gradeWebSafeKey')))[0]
                section_key = ndb.Key(
                    Section,
                    section_id,
                    parent=ndb.Key(
                        urlsafe=getattr(request, 'gradeWebSafeKey')))
                section.key = section_key
            else:
                raise endpoints.NotFoundException('Not a valid Grade')

        if request:
            for field in ('name', 'none'):
                if hasattr(request, field):
                    if field == 'name':
                        val = getattr(request, field)
                        if val:
                            setattr(section, field, str(val))
                            section.nameUpper = str(val).upper()
                        else:
                            raise endpoints.NotFoundException(
                                'Not a valid name')
                    else:
                        val = getattr(request, field)
                        if val:
                            setattr(section, field, str(val))
        section.organizerUserId = registeredUser.orgKey
        section.put()
        return message_types.VoidMessage()
 def getUser(self, request):
     user = endpoints.get_current_user()
     user_id = helper.getUserId()
     registeredUser = helper.getRegisteredUser()
     registeredUsersOutputForm = RegisteredUsersOutputForm()
     if not registeredUser:
         registeredUsersOutputForm.isUser = False
     else:
         registeredUsersOutputForm.userName = registeredUser.userName
         registeredUsersOutputForm.mainEmail = registeredUser.mainEmail
         # registeredUsersOutputForm.userAddress = registeredUser.userAddress
         # registeredUsersOutputForm.isOwner = True if registeredUser.isOwner else False
         registeredUsersOutputForm.isPrincipal = True if registeredUser.isPrincipal else False
         registeredUsersOutputForm.isAdmin = True if registeredUser.isAdmin else False
         registeredUsersOutputForm.isStudent = True if registeredUser.isStudent else False
         registeredUsersOutputForm.isActive = True if registeredUser.isActive else False
     return registeredUsersOutputForm
    def approveUser(self, request):
        user = endpoints.get_current_user()
        user_id = helper.getUserId()
        registeredUser = helper.getRegisteredUser()
        if not registeredUser:
            raise endpoints.ForbiddenException("Not Allowed to update user")
        if not (registeredUser.isAdmin == True
                or registeredUser.isOwner == True):
            raise endpoints.ForbiddenException("Not Allowed to update user")


#         tokenFromDatabase = Token.query(ndb.GenericProperty(str(Token.employeeKey)) == str(request.registeredUserKey)).fetch(projection=["tokenNumber"])
        tokenFromDatabaseQuery = Token.query()
        print tokenFromDatabaseQuery
        if request.empId:
            regiteredUserToApprove = RegisteredUsers.query(
                RegisteredUsers.orgKey == registeredUser.orgKey
                and RegisteredUsers.employeeKey == ndb.Key(
                    Employee, request.empId)).fetch()
            tokenFromDatabase = tokenFromDatabaseQuery.filter(
                Token.employeeKey == ndb.Key(Employee, request.empId)).fetch(
                    projection=["tokenNumber"])
            if not tokenFromDatabase:
                raise endpoints.BadRequestException("Not a valid tEnployee ID")
        elif request.studentId:
            regiteredUserToApprove = RegisteredUsers.query(
                RegisteredUsers.orgKey == registeredUser.orgKey
                and RegisteredUsers.studentKey == ndb.Key(
                    Student, request.studentId)).fetch()
            tokenFromDatabase = tokenFromDatabaseQuery.filter(
                Token.studentKey == ndb.Key(Student, request.studentId)).fetch(
                    projection=["tokenNumber"])
            if not tokenFromDatabase:
                raise endpoints.BadRequestException("Not a valid tEnployee ID")
        regiteredUserToApprove = regiteredUserToApprove[0]
        tokenFromDatabase = tokenFromDatabase[0]
        if tokenFromDatabase.tokenNumber == request.tokenNumber:
            print
            regiteredUserToApprove.isActive = True
            regiteredUserToApprove.put()
            tokenFromDatabaseQuery.fetch()[0].key.delete()
        else:
            raise endpoints.BadRequestException("Not a valid token Number")

        return message_types.VoidMessage()
 def giveRolesToUser(self, request):
     user = endpoints.get_current_user()
     user_id = helper.getUserId()
     registeredUser = helper.getRegisteredUser()
     if not registeredUser:
         raise endpoints.ForbiddenException("Not Allowed to update user")
     if not (registeredUser.isAdmin == True
             or registeredUser.isOwner == True):
         raise endpoints.ForbiddenException("Not Allowed to update user")
     userToUpdate = RegisteredUsers.query(RegisteredUsers.key == ndb.Key(
         urlsafe=request.registeredUserKey)).fetch()
     if not userToUpdate:
         raise endpoints.ForbiddenException("Enter Correct Key")
     userToUpdate = userToUpdate[0]
     userToUpdate.isAdmin = True if request.isAdmin == True else False
     userToUpdate.isTeacher = True if request.isTeacher == True else False
     userToUpdate.isStudent = True if request.isStudent == True else False
     userToUpdate.isPrincipal = True if request.isPrincipal == True else False
     userToUpdate.put()
示例#16
0
    def registerStudent(self, request):
        user = endpoints.get_current_user()
        user_id = helper.getUserId()
        registeredUser = helper.getRegisteredUser()
        if not registeredUser:
            raise endpoints.NotFoundException(
                'User is not registered to perform operation')
        namespace_manager.set_namespace(self._getNamespace(registeredUser))
        organization = registeredUser.orgKey.get()
        if request.studentWebSafeKey:
            student = ndb.Key(urlsafe=request.studentWebSafeKey).get()
        else:
            student = Student()
            organization.studentCount = organization.studentCount + 1
            student.rollNumber = organization.studentCount
        if request:
            for field in ('studentFees', 'studentName', 'studentAge',
                          'sectionWebSafeKey', 'subjectWebSafeKey'):
                if hasattr(request, field):
                    val = getattr(request, field)
                    if val:
                        setattr(student, field, str(val))
            if request.gradeWebSafeKey:
                student.gradeKey = ndb.Key(urlsafe=request.gradeWebSafeKey)
            if request.sectionWebSafeKey:
                student.sectionKey = ndb.Key(urlsafe=request.sectionWebSafeKey)
            subject_keys = []
            if request.subjectWebSafeKey:
                for key in request.subjectWebSafeKey:
                    print key
                    if ndb.Key(urlsafe=key) not in subject_keys:
                        subject_keys.append(ndb.Key(urlsafe=key))
                student.subjectKey = subject_keys

        student.orgKey = registeredUser.orgKey
        student.createdBy = registeredUser.key
        self._saveStudent(student, organization)
        return message_types.VoidMessage()