Beispiel #1
0
    def get(self):
        if self.request.get('langCode'):
            langCode = self.request.get('langCode')

            q = Subjects.query(Subjects.LangCode == langCode)
            units = q.fetch(999)

            countmap_other_language={}
            for unit in units:
                logging.info('QQQ: LangCode in clone: %s' % unit.LangCode)
                if unit.LearningUnitID not in countmap_other_language:
                    logging.info('QQQ: LearningUnitID in clone: %s' % unit.LearningUnitID)
                    countmap_other_language[unit.LearningUnitID] = 1

            q = Subjects.query(Subjects.LangCode == 'en')
            units_en = q.fetch(999)

            for unit2 in units_en:
                if unit2.LearningUnitID not in countmap_other_language:
                    logging.info('QQQ: LearningUnitID to add in clone: %s' % unit2.LearningUnitID)
                    logging.info('QQQ: LangCode to add in clone: %s' % langCode)
                    n = Subjects(LearningUnitID = unit2.LearningUnitID
                        , Subject = unit2.Subject
                        , Name = unit2.Name
                        , Seq = unit2.Seq
                        , LangCode = langCode
                        , Description = unit2.Description
                        , Status = 'Pending Translation'
                        )
                    n.put()
            return self.redirect('/subjs')        

        else:
            return self.redirect('/subjs')  
Beispiel #2
0
    def get(self, unit_id):
        iden = int(unit_id)
        unit = ndb.Key('Subjects', iden).get()

        f = Subjects.query(Subjects.LangCode == 'en', Subjects.LearningUnitID == unit.LearningUnitID)
        units_en = f.get()
        
        SubjAreaList = []
        if SubjectAreas.LangCode == 'en':
            q = SubjectAreas.query(SubjectAreas.LangCode == 'en').order(SubjectAreas.Seq)
            SubjAreaResponseSet = q.fetch(999)
            for SubjArea in SubjAreaResponseSet:
                SubjAreaList.append(SubjArea.Name)

        logout = None
        login = None
        currentuser = users.get_current_user()
        if currentuser:
              logout = users.create_logout_url('/units' )
        else:
              login = users.create_login_url('/units')

        #SubjectList = ['Math', 'Biology', 'Chemistry'];		  
        StatusList = ['Pending Translation', 'Pending Review', 'Published'];		  
        self.render_template('LearnSubjEdit.html', {'unit': unit, 'units_en': units_en, 'SubjectList': SubjAreaList, 'StatusList': StatusList, 'currentuser':currentuser, 'login':login, 'logout': logout})
Beispiel #3
0
    def get(self, unit_id):
        iden = int(unit_id)
        unit = ndb.Key("TopicGrps", iden).get()

        f = TopicGrps.query(TopicGrps.LangCode == "en", TopicGrps.LearningUnitID == unit.LearningUnitID)
        units_en = f.get()

        if self.request.get("SubjFilter"):
            SubjFilter = self.request.get("SubjFilter")
            self.session["SubjFilter"] = SubjFilter
        else:
            SubjFilter = self.session.get("SubjFilter")
        if not SubjFilter:
            self.session["SubjFilter"] = "all"
            SubjFilter = "all"
        logging.info("QQQ: SubjFilter in Topic Grp Edit: %s" % SubjFilter)

        if self.request.get("SubjAreaFilter"):
            SubjAreaFilter = self.request.get("SubjAreaFilter")
            self.session["SubjAreaFilter"] = SubjAreaFilter
        else:
            SubjAreaFilter = self.session.get("SubjAreaFilter")
        if not SubjAreaFilter:
            self.session["SubjAreaFilter"] = "Math"
            SubjAreaFilter = "Math"

        q3 = Subjects.query(Subjects.Subject == SubjAreaFilter).order(Subjects.Seq)
        subjects = q3.fetch(999)
        SubjectList = []
        if subjects:
            for subject in subjects:
                SubjectList.append(subject.Name)
        else:
            SubjectList.append("none")

        logout = None
        login = None
        currentuser = users.get_current_user()
        if currentuser:
            logout = users.create_logout_url("/topgrps")
        else:
            login = users.create_login_url("/topgrps")

        #        SubjectList = ['Math', 'Biology', 'Chemistry'];
        StatusList = ["Pending Translation", "Pending Review", "Published"]
        self.render_template(
            "LearnTopicGrpEdit.html",
            {
                "unit": unit,
                "units_en": units_en,
                "SubjectList": SubjectList,
                "SubjFilter": SubjFilter,
                "StatusList": StatusList,
                "currentuser": currentuser,
                "login": login,
                "logout": logout,
            },
        )
Beispiel #4
0
def TopicSeqRecalc():
    dic_en = {}
    q2 = Subjects.query(Subjects.LangCode == 'en')
    unitsen = q2.fetch(999)
    for uniten in unitsen:
        logging.info('GGG: TopicSeqRecalc / Seq before: %d' % uniten.Seq)
        seq = uniten.Seq
        if seq == None:
            seq = 256
        logging.info('GGG: TopicSeqRecalc / Adding Subjects to Dic: %s' % uniten.LearningUnitID)
        logging.info('GGG: TopicSeqRecalc / Adding Seq to Dic: %d' % seq)
        dic_en[uniten.LearningUnitID] = seq

    q = Subjects.query(Subjects.LangCode != 'en')
    units = q.fetch(999)
    for unit in units:
        logging.info('GGG: TopicSeqRecalc / Updating Subjects %s' % unit.LearningUnitID)
        logging.info('GGG: TopicSeqRecalc / Updating Subjects Seq: %d' % dic_en[unit.LearningUnitID])
        unit.Seq = dic_en[unit.LearningUnitID]
        unit.put()

    return  
Beispiel #5
0
    def get(self):
        if self.request.get("SubjFilter"):
            SubjFilter = self.request.get("SubjFilter")
            self.session["SubjFilter"] = SubjFilter
        else:
            SubjFilter = self.session.get("SubjFilter")
        if not SubjFilter:
            self.session["SubjFilter"] = "all"
            SubjFilter = "all"

        if self.request.get("SubjAreaFilter"):
            SubjAreaFilter = self.request.get("SubjAreaFilter")
            self.session["SubjAreaFilter"] = SubjAreaFilter
        else:
            SubjAreaFilter = self.session.get("SubjAreaFilter")
        if not SubjAreaFilter:
            self.session["SubjAreaFilter"] = "Math"
            SubjAreaFilter = "Math"

        logout = None
        login = None
        currentuser = users.get_current_user()
        if currentuser:
            logout = users.create_logout_url("/topgrps")
        else:
            login = users.create_login_url("/topgrps")

        q3 = Subjects.query(Subjects.Subject == SubjAreaFilter, Subjects.LangCode == "en").order(
            Subjects.Seq, Subjects.LearningUnitID
        )
        subjects = q3.fetch(999)
        SubjectList = []
        if subjects:
            for subject in subjects:
                SubjectList.append(subject.Name)
        else:
            SubjectList.append("none")

        #        SubjectList = ['Math', 'Biology', 'Chemistry'];
        self.render_template(
            "LearnTopicGrpCreate.html",
            {
                "SubjectList": SubjectList,
                "SubjFilter": SubjFilter,
                "currentuser": currentuser,
                "login": login,
                "logout": logout,
            },
        )
Beispiel #6
0
    def get(self, unit_id):
        iden = int(unit_id)
        unit = ndb.Key('TopicAreas', iden).get()

        f = TopicAreas.query(TopicAreas.LangCode == 'en', TopicAreas.LearningUnitID == unit.LearningUnitID)
        units_en = f.get()
        
        if self.request.get('SubjFilter'):
            SubjFilter=self.request.get('SubjFilter')
            self.session['SubjFilter'] = SubjFilter
        else:
            SubjFilter = self.session.get('SubjFilter')
        if not SubjFilter:
            self.session['SubjFilter'] = 'all'
            SubjFilter = 'all'
        logging.info('QQQ: SubjFilter in Topic Grp Edit: %s' % SubjFilter)

        if self.request.get('SubjAreaFilter'):
            SubjAreaFilter=self.request.get('SubjAreaFilter')
            self.session['SubjAreaFilter'] = SubjAreaFilter
        else:
            SubjAreaFilter = self.session.get('SubjAreaFilter')
        if not SubjAreaFilter:
            self.session['SubjAreaFilter'] = 'Math'
            SubjAreaFilter = 'Math'

        q3 = Subjects.query(Subjects.Subject == SubjAreaFilter).order(Subjects.Seq)
        subjects = q3.fetch(999)
        SubjectList = []
        if subjects:
            for subject in subjects:
                SubjectList.append(subject.Name)
        else:
            SubjectList.append('none')
        
        logout = None
        login = None
        currentuser = users.get_current_user()
        if currentuser:
              logout = users.create_logout_url('/topareas' )
        else:
              login = users.create_login_url('/topareas')

#        SubjectList = ['Math', 'Biology', 'Chemistry'];		  
        StatusList = ['Pending Translation', 'Pending Review', 'Published'];		  
        self.render_template('LearnTopicAreaEdit.html', {'unit': unit, 'units_en': units_en, 'SubjectList': SubjectList, 'StatusList': StatusList, 'currentuser':currentuser, 'login':login, 'logout': logout})
Beispiel #7
0
    def get(self):
        if self.request.get('SubjFilter'):
            SubjFilter=self.request.get('SubjFilter')
            self.session['SubjFilter'] = SubjFilter
        else:
            SubjFilter = self.session.get('SubjFilter')
        if not SubjFilter:
            self.session['SubjFilter'] = 'all'
            SubjFilter = 'all'

        if self.request.get('SubjAreaFilter'):
            SubjAreaFilter=self.request.get('SubjAreaFilter')
            self.session['SubjAreaFilter'] = SubjAreaFilter
        else:
            SubjAreaFilter = self.session.get('SubjAreaFilter')
        if not SubjAreaFilter:
            self.session['SubjAreaFilter'] = 'Math'
            SubjAreaFilter = 'Math'

        logout = None
        login = None
        currentuser = users.get_current_user()
        if currentuser:
              logout = users.create_logout_url('/subjs' )
        else:
              login = users.create_login_url('/subjs')

        q3 = Subjects.query(Subjects.Subject == SubjAreaFilter, Subjects.LangCode == 'en').order(Subjects.Seq, Subjects.LearningUnitID)
        subjects = q3.fetch(999)
        SubjectList = []
        if subjects:
            for subject in subjects:
                SubjectList.append(subject.Name)
        else:
            SubjectList.append('none')
            
#        SubjectList = ['Math', 'Biology', 'Chemistry'];		  
        self.render_template('LearnTopicAreaCreate.html', {'SubjectList':SubjectList, 'SubjFilter':SubjFilter, 'currentuser':currentuser, 'login':login, 'logout': logout})
Beispiel #8
0
    def get(self):
#        TopicSeqRecalc()
        
        languages = memcache.get("languages")
        if languages is not None:
            logging.info("get languages from memcache.")
        else:
            q = Languages.query().order(Languages.langName)
            languages = q.fetch(99)
            logging.info("Can not get languages from memcache.")
            if not memcache.add("languages", languages, 99):
                logging.info("Memcache set failed.")

        if self.request.get('langCode'):
            langCode=self.request.get('langCode')
            self.session['langCode'] = langCode
        else:
            langCode = self.session.get('langCode')
        if not langCode:
            self.session['langCode'] = 'en' 
            langCode = 'en'

        langName = 'no language'
        for language in languages:
            if language.langCode == langCode:
                langName = language.langName

        if self.request.get('StatusFilter'):
            StatusFilter=self.request.get('StatusFilter')
            self.session['StatusFilter'] = StatusFilter
        else:
            StatusFilter = self.session.get('StatusFilter')
        if not StatusFilter:
            self.session['StatusFilter'] = 'all'
            StatusFilter = 'all'

        if self.request.get('SubjAreaFilter'):
            SubjAreaFilter=self.request.get('SubjAreaFilter')
            self.session['SubjAreaFilter'] = SubjAreaFilter
        else:
            SubjAreaFilter = self.session.get('SubjAreaFilter')
        if not SubjAreaFilter:
            self.session['SubjAreaFilter'] = 'Math'
            SubjAreaFilter = 'Math'

        if self.request.get('Typ'):
            Typ=self.request.get('Typ')
            self.session['Typ'] = Typ
        else:
            Typ = self.session.get('Typ')
        if not Typ:
            self.session['Typ'] = 'ex'
            Typ = 'ex'

        logout = None
        login = None
        currentuser = users.get_current_user()
        if currentuser:
              logout = users.create_logout_url('/units' )
        else:
              login = users.create_login_url('/units')

        SubjAreaList = []
        q = SubjectAreas.query(SubjectAreas.LangCode == langCode)
        SubjAreaResponseSet = q.fetch(999)
        for SubjArea in SubjAreaResponseSet:
            SubjAreaList.append(SubjArea.Name)
        StatusList = ['Pending Translation', 'Pending Review', 'Published'];
#        SubjAreaList = ['Math', 'Science'];	
        logging.info('QQQ: rq rq rq: %s' % self.request.get('rq'))
#        if self.request.get('rq') == '2':

        Cnt = memcache.get("Subj_EnCnt")
        if Cnt is not None:
            logging.info("PPP - got Subj_EnCnt from memcache.")
            count_en = Cnt
        else:
            logging.info("PPP - Could not get Subjs_EnCnt from memcache.")
            count_en = 0
            langCode_en = 'en'
            units = memcache.get("Subjs_En")
            if units is not None:
                logging.info("PPP - got Subjs_En_units from memcache.")
            else:
                # logging.info("PPP - Can not get SubjAreas_units from memcache.")
                q = Subjects.query(Subjects.LangCode == langCode_en)
                units = q.fetch(999, keys_only=True)
                if not memcache.add("Subjs_En", units, 999):
                    logging.info("PPP - Subjs_EnCnt_Memcache set failed.")
            for unit in units:
#                logging.info('QQQ: count_en: %d' % count_en)
                count_en = count_en + 1
            if not memcache.add("Subj_EnCnt", count_en, 999):
                    logging.info("PPP - Subj_EnCnt_Memcache set failed.")
        logging.info('QQQ: Total count_en: %d' % count_en)

        # count_en = 0
        # langCode_en = 'en'
        # q = Subjects.query(Subjects.LangCode == langCode_en)
        # units = q.fetch(999)
        # for unit in units:
            # logging.info('QQQ: count_en: %d' % count_en)
            # count_en = count_en + 1
        # logging.info('QQQ: Total count_en: %d' % count_en)

        logging.info('QQQ: langCode: %s' % langCode)
        count_other_language = 0
        q2 = Subjects.query(Subjects.LangCode == langCode)
        unitsx = q2.fetch(999, keys_only=True)
        for unit in unitsx:
            logging.info('QQQ: count_other_language: %d' % count_other_language)
            count_other_language = count_other_language + 1
        logging.info('QQQ: Total count_other_language: %d' % count_other_language)

        logging.info('GGG: StatusFilter in LearnUnitList: %s' % StatusFilter)
        logging.info('GGG: SubjAreaFilter in LearnUnitList: %s' % SubjAreaFilter)
        if SubjAreaFilter == 'all':
            if StatusFilter == 'all':
                logging.info('GGG: Which Query in LearnUnitList: %s' % 'all and all')
                logging.info('GGG: LangCode in LearnUnitList: %s' % langCode)
                q = Subjects.query(Subjects.LangCode == langCode).order(Subjects.Seq, Subjects.LearningUnitID)
            else:
                logging.info('GGG: Which Query in LearnUnitList: %s' % 'all and StatusFilter')
                logging.info('GGG: LangCode in LearnUnitList: %s' % langCode)
                logging.info('GGG: StatusFilter in LearnUnitList: %s' % StatusFilter)
                q = Subjects.query(Subjects.LangCode == langCode, Subjects.Status == StatusFilter).order(Subjects.Seq, Subjects.LearningUnitID)
        else:
            if StatusFilter == 'all':
                logging.info('GGG: Which Query in LearnUnitList: %s' % 'SubjAreaFilter and all')
                logging.info('GGG: LangCode in LearnUnitList: %s' % langCode)
                logging.info('GGG: SubjAreaFilter in LearnUnitList: %s' % SubjAreaFilter)
                q = Subjects.query(Subjects.LangCode == langCode, Subjects.Subject == SubjAreaFilter).order(Subjects.Seq, Subjects.LearningUnitID)
            else:
                logging.info('GGG: Which Query in LearnUnitList: %s' % 'SubjAreaFilter and StatusFilter')
                logging.info('GGG: LangCode in LearnUnitList: %s' % langCode)
                logging.info('GGG: SubjAreaFilter in LearnUnitList: %s' % SubjAreaFilter)
                logging.info('GGG: StatusFilter in LearnUnitList: %s' % StatusFilter)
                q = Subjects.query(Subjects.LangCode == langCode, Subjects.Subject == SubjAreaFilter, Subjects.Status == StatusFilter).order(Subjects.Seq, Subjects.LearningUnitID)

        units = q.fetch(999)
    #    self.render_template('LearnSubjList.html', {'units': units, 'count_en': count_en, 'count_other_language': count_other_language, 'StatusList':StatusList, 'StatusFilter':StatusFilter, 'SubjAreaFilter':SubjAreaFilter, 'SubjAreaList':SubjAreaList, 'languages':languages, 'langCode':langCode, 'langName':langName, 'currentuser':currentuser, 'login':login, 'logout': logout})

#        else:
#            units = []
#            count_en = 0
#            count_other_language = 0
        self.render_template('LearnSubjList.html', {'units': units, 'count_en': count_en, 'count_other_language': count_other_language, 'StatusList':StatusList, 'StatusFilter':StatusFilter, 'SubjAreaFilter':SubjAreaFilter, 'Typ':Typ, 'SubjAreaList':SubjAreaList, 'languages':languages, 'langCode':langCode, 'langName':langName, 'currentuser':currentuser, 'login':login, 'logout': logout})
Beispiel #9
0
    def get(self):
        languages = memcache.get("languages")
        if languages is not None:
            logging.info("get languages from memcache.")
        else:
            q = Languages.query().order(Languages.langName)
            languages = q.fetch(99)
            logging.info("Can not get languages from memcache.")
            if not memcache.add("languages", languages, 10):
                logging.info("Memcache set failed.")

        if self.request.get('langCode'):
            langCode=self.request.get('langCode')
            self.session['langCode'] = langCode
        else:
            langCode = self.session.get('langCode')
        if not langCode:
            self.session['langCode'] = 'en' 
            langCode = 'en'

        langName = 'no language'
        for language in languages:
            if language.langCode == langCode:
                langName = language.langName

        if self.request.get('StatusFilter'):
            StatusFilter=self.request.get('StatusFilter')
            self.session['StatusFilter'] = StatusFilter
        else:
            StatusFilter = self.session.get('StatusFilter')
        if not StatusFilter:
            self.session['StatusFilter'] = 'all'
            StatusFilter = 'all'

        if self.request.get('SubjFilter'):
            SubjFilter=self.request.get('SubjFilter')
            self.session['SubjFilter'] = SubjFilter
        else:
            SubjFilter = self.session.get('SubjFilter')
        if not SubjFilter:
            self.session['SubjFilter'] = 'all'
            SubjFilter = 'all'

        count_en = 0
        langCode_en = 'en'
        q = TopicAreas.query(TopicAreas.LangCode == langCode_en)
        units = q.fetch(999)
        for unit in units:
            logging.info('QQQ: count_en: %d' % count_en)
            count_en = count_en + 1
        logging.info('QQQ: Total count_en: %d' % count_en)

        logging.info('QQQ: langCode: %s' % langCode)
        count_other_language = 0
        q2 = TopicAreas.query(TopicAreas.LangCode == langCode)
        unitsx = q2.fetch(999)
        for unit in unitsx:
            logging.info('QQQ: count_other_language: %d' % count_other_language)
            count_other_language = count_other_language + 1
        logging.info('QQQ: Total count_other_language: %d' % count_other_language)

        logging.info('GGG: StatusFilter in LearnUnitList: %s' % StatusFilter)
        if StatusFilter == 'all':
            if SubjFilter == 'all':
                q = TopicAreas.query(TopicAreas.LangCode == langCode).order(TopicAreas.Seq, TopicAreas.LearningUnitID)
            else:
                q = TopicAreas.query(TopicAreas.LangCode == langCode, TopicAreas.Subject == SubjFilter).order(TopicAreas.Seq, TopicAreas.LearningUnitID)
        else:
            if SubjFilter == 'all':
                q = TopicAreas.query(TopicAreas.LangCode == langCode, TopicAreas.Status == StatusFilter).order(TopicAreas.Seq, TopicAreas.LearningUnitID)
            else:
                q = TopicAreas.query(TopicAreas.LangCode == langCode, TopicAreas.Status == StatusFilter, TopicAreas.Subject == SubjFilter).order(TopicAreas.Seq, TopicAreas.LearningUnitID)

        units = q.fetch(999)

        q4 = Subjects.query(Subjects.LangCode == langCode, Subjects.Subject == 'Math')
        subjects = q4.fetch(999)
        SubjectList = []
        if subjects:
            for subject in subjects:
                SubjectList.append(subject.Name)
        else:
            SubjectList.append('none')
            
        logout = None
        login = None
        currentuser = users.get_current_user()
        if currentuser:
              logout = users.create_logout_url('/topareas' )
        else:
              login = users.create_login_url('/topareas')

        StatusList = ['Pending Translation', 'Pending Review', 'Published'];
#        SubjectList = ['Math', 'Science'];	
        self.render_template('LearnTopicAreaList.html', {'units': units, 'count_en': count_en, 'count_other_language': count_other_language, 'StatusList':StatusList, 'SubjectList':SubjectList, 'StatusFilter':StatusFilter, 'SubjFilter':SubjFilter, 'languages':languages, 'langCode':langCode, 'langName':langName, 'currentuser':currentuser, 'login':login, 'logout': logout})
Beispiel #10
0
    def get(self):
        languages = memcache.get("languages")
        if languages is not None:
            logging.info("get languages from memcache.")
        else:
            q = Languages.query().order(Languages.langName)
            languages = q.fetch(99)
            logging.info("Can not get languages from memcache.")
            if not memcache.add("languages", languages, 10):
                logging.info("Memcache set failed.")

        if self.request.get("langCode"):
            langCode = self.request.get("langCode")
            self.session["langCode"] = langCode
        else:
            langCode = self.session.get("langCode")
        if not langCode:
            self.session["langCode"] = "en"
            langCode = "en"

        langName = "no language"
        for language in languages:
            if language.langCode == langCode:
                langName = language.langName

        if self.request.get("Typ"):
            Typ = self.request.get("Typ")
            self.session["Typ"] = Typ
        else:
            Typ = self.session.get("Typ")
        if not Typ:
            self.session["Typ"] = "ex"
            Typ = "ex"

        if self.request.get("StatusFilter"):
            StatusFilter = self.request.get("StatusFilter")
            self.session["StatusFilter"] = StatusFilter
        else:
            StatusFilter = self.session.get("StatusFilter")
        if not StatusFilter:
            self.session["StatusFilter"] = "all"
            StatusFilter = "all"

        if self.request.get("SubjFilter"):
            SubjFilter = self.request.get("SubjFilter")
            self.session["SubjFilter"] = SubjFilter
        else:
            SubjFilter = self.session.get("SubjFilter")
        if not SubjFilter:
            self.session["SubjFilter"] = "all"
            SubjFilter = "all"

        Cnt = memcache.get("TopGrp_EnCnt")
        if Cnt is not None:
            logging.info("PPP - got TopGrp_EnCnt from memcache.")
            count_en = Cnt
        else:
            logging.info("PPP - Could not get TopGrp_EnCnt from memcache.")
            count_en = 0
            langCode_en = "en"
            units = memcache.get("TopGrps_En")
            if units is not None:
                logging.info("PPP - got TopGrps_En from memcache.")
            else:
                logging.info("PPP - Can not get TopGrps_En_units from memcache.")
                q = TopicGrps.query(TopicGrps.LangCode == langCode_en)
                units = q.fetch(999, keys_only=True)
                if not memcache.add("TopGrps_En", units, 999):
                    logging.info("PPP - TopGrps_En_Memcache set failed.")
            for unit in units:
                #                logging.info('QQQ: count_en: %d' % count_en)
                count_en = count_en + 1
            if not memcache.add("TopGrp_EnCnt", count_en, 999):
                logging.info("PPP - TopGrp_EnCnt_Memcache set failed.")
        logging.info("QQQ: Total count_en: %d" % count_en)

        # count_en = 0
        # langCode_en = 'en'
        # q = TopicGrps.query(TopicGrps.LangCode == langCode_en)
        # units = q.fetch(999)
        # for unit in units:
        # logging.info('QQQ: count_en: %d' % count_en)
        # count_en = count_en + 1
        # logging.info('QQQ: Total count_en: %d' % count_en)

        logging.info("QQQ: langCode: %s" % langCode)
        count_other_language = 0
        q2 = TopicGrps.query(TopicGrps.LangCode == langCode)
        unitsx = q2.fetch(999, keys_only=True)
        for unit in unitsx:
            logging.info("QQQ: count_other_language: %d" % count_other_language)
            count_other_language = count_other_language + 1
        logging.info("QQQ: Total count_other_language: %d" % count_other_language)

        logging.info("GGG: StatusFilter in LearnUnitList: %s" % StatusFilter)
        if StatusFilter == "all":
            if SubjFilter == "all":
                q = TopicGrps.query(TopicGrps.LangCode == langCode).order(TopicGrps.Seq, TopicGrps.LearningUnitID)
            else:
                q = TopicGrps.query(TopicGrps.LangCode == langCode, TopicGrps.Subject == SubjFilter).order(
                    TopicGrps.Seq, TopicGrps.LearningUnitID
                )
        else:
            if SubjFilter == "all":
                q = TopicGrps.query(TopicGrps.LangCode == langCode, TopicGrps.Status == StatusFilter).order(
                    TopicGrps.Seq, TopicGrps.LearningUnitID
                )
            else:
                q = TopicGrps.query(
                    TopicGrps.LangCode == langCode, TopicGrps.Status == StatusFilter, TopicGrps.Subject == SubjFilter
                ).order(TopicGrps.Seq, TopicGrps.LearningUnitID)

        units = q.fetch(999)

        q4 = Subjects.query(Subjects.LangCode == langCode, Subjects.Subject == SubjFilter).order(Subjects.Seq)
        subjects = q4.fetch(999)
        SubjectList = []
        if subjects:
            for subject in subjects:
                SubjectList.append(subject.Name)
        else:
            SubjectList.append("none")

        logout = None
        login = None
        currentuser = users.get_current_user()
        if currentuser:
            logout = users.create_logout_url("/topgrps")
        else:
            login = users.create_login_url("/topgrps")

        StatusList = ["Pending Translation", "Pending Review", "Published"]
        #        SubjectList = ['Math', 'Science'];
        self.render_template(
            "LearnTopicGrpList.html",
            {
                "units": units,
                "count_en": count_en,
                "count_other_language": count_other_language,
                "StatusList": StatusList,
                "SubjectList": SubjectList,
                "StatusFilter": StatusFilter,
                "Typ": Typ,
                "SubjFilter": SubjFilter,
                "languages": languages,
                "langCode": langCode,
                "langName": langName,
                "currentuser": currentuser,
                "login": login,
                "logout": logout,
            },
        )