def hebrew_parasha(p): try: term = m.Term().load({"name": p, "scheme": "Parasha"}) parasha = term.get_titles(lang="he")[0] except Exception, e: print e parasha = p
def get_sheets_by_tag(tag, public=True, uid=None, group=None, proj=None, limit=0, page=0): """ Returns all sheets tagged with 'tag' """ term = model.Term().load_by_title(tag) tags = term.get_titles() if term else [tag] query = {"tags": {"$in": tags}} if tag else {"tags": {"$exists": 0}} if uid: query["owner"] = uid elif group: query["group"] = group elif public: query["status"] = "public" sheets = db.sheets.find(query, proj).sort([["views", -1]]).limit(limit).skip(page * limit) return sheets
def add_term(i, en, he): term = model.Term() term.name = en term.scheme = ts.name term.order = i term.set_titles([ { "lang": "en", "text": en, "primary": True }, { "lang": "he", "text": he, "primary": True } ]) term.save()
tags = csv.reader(tfile) tags.next() for row in tags: (parent_tag, tag, count, tag_category) = row # ignore tags if they're only from a single user... query = {"$or": [{"tags": tag}, {"tags": parent_tag}]} if parent_tag != "" else {"tags": tag} owner_count = len(db.sheets.find(query).distinct("owner")) if owner_count < 4: continue term = model.Term() parent_term = model.Term() #case 1 - tag and parent tag both not in terms: add to list to be dealt with by content team if not term.load_by_title(tag) and not parent_term.load_by_title(parent_tag): missing_terms.append(tag.decode('utf-8')) #case 2: no parent tag, but tag exists as term: elif not parent_term.load_by_title(parent_tag) and term.load_by_title(tag): term_to_edit = term.load_by_title(tag) term_to_edit.category = tag_category term_to_edit.save() #case 3: parent tag exists as term, but tag does not : elif parent_term.load_by_title(parent_tag) and not term.load_by_title(tag): term_to_edit = parent_term.load_by_title(parent_tag) term_to_edit.category = tag_category
ts = model.TermScheme() if not ts.load({"name": "Parasha"}): ts.name = "Parasha" ts.save() with open(cfile, 'rb') as pfile: parashiot = csv.reader(pfile) next(parashiot) order = 1 for row in parashiot: (en, he, ref) = row print(en) if en == "Lech-Lecha": en = "Lech Lecha" term = model.Term() if term.load({"name": en}): order += 1 continue term.name = en term.scheme = ts.name term.order = order term.ref = ref term.set_titles([{ "lang": "en", "text": en, "primary": True }, { "lang": "he", "text": he, "primary": True
"text": en, "primary": True }, { "lang": "he", "text": he, "primary": True } ]) term.save() # Need to remove "Law/חוקים" from Halakhah -- titles_to_delete_if_they_exist = [("Law", "en"), ("חוקים", "he")] for title in titles_to_delete_if_they_exist: term = model.Term().load_by_title(title[0]) if term: term.remove_title(title[0], title[1]) term.save() # -------------------- for i, (en, he) in enumerate(z, 1): term = model.Term() en_term_exists = term.load_by_title(en) he_term_exists = term.load_by_title(he) if en_term_exists or he_term_exists: title = en_term_exists.get_primary_title()