Package coprs :: Module whoosheers
[hide private]
[frames] | no frames]

Source Code for Module coprs.whoosheers

 1  import whoosh 
 2   
 3  from flask.ext.whooshee import AbstractWhoosheer 
 4   
 5  from coprs import models 
 6  from coprs import whooshee 
7 8 9 @whooshee.register_whoosheer 10 -class CoprUserWhoosheer(AbstractWhoosheer):
11 schema = whoosh.fields.Schema( 12 copr_id=whoosh.fields.NUMERIC(stored=True, unique=True), 13 user_id=whoosh.fields.NUMERIC(stored=True), 14 username=whoosh.fields.TEXT(), 15 # treat dash as a normal character - so searching for example 16 # "copr-dev" will really search for "copr-dev" 17 coprname=whoosh.fields.TEXT( 18 analyzer=whoosh.analysis.StandardAnalyzer( 19 expression=r"\w+(-\.?\w+)*")), 20 description=whoosh.fields.TEXT(), 21 instructions=whoosh.fields.TEXT()) 22 23 models = [models.Copr, models.User] 24 25 @classmethod
26 - def update_user(cls, writer, user):
27 # TODO: this is not needed now, as users can't change names, but may be 28 # needed later 29 pass
30 31 @classmethod
32 - def update_copr(cls, writer, copr):
33 writer.update_document(copr_id=copr.id, 34 user_id=copr.owner.id, 35 username=copr.owner.name, 36 coprname=copr.name, 37 description=copr.description, 38 instructions=copr.instructions)
39 40 @classmethod
41 - def insert_user(cls, writer, user):
42 # nothing, user doesn't have coprs yet 43 pass
44 45 @classmethod
46 - def insert_copr(cls, writer, copr):
47 writer.add_document(copr_id=copr.id, 48 user_id=copr.owner.id, 49 username=copr.owner.name, 50 coprname=copr.name, 51 description=copr.description, 52 instructions=copr.instructions)
53 54 @classmethod
55 - def delete_copr(cls, writer, copr):
56 writer.delete_by_term("copr_id", copr.id)
57