iro/model/offer.py
author Sandro Knauß <knauss@netzguerilla.net>
Mon, 13 Feb 2012 19:52:54 +0100
branchdevel
changeset 152 14c99c89edf4
parent 150 c6896c3374c4
child 157 0192f9107870
permissions -rw-r--r--
using extendProvide in Job.create
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
148
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
     1
from .dbdefer import dbdefer
152
14c99c89edf4 using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents: 150
diff changeset
     2
import schema
147
e96e50ae6352 adding config module
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
     3
from ..config import config
142
7d0c1fa97123 task._run umbau zu inlineCallbacks
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
     4
148
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
     5
@dbdefer
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
     6
def extendProvider(session, user, typ, providers):
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
     7
    user = session.merge(user)
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
     8
    ret = []
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
     9
    for p in providers:
150
c6896c3374c4 more offer tests an fixes in model.schema
Sandro Knauß <knauss@netzguerilla.net>
parents: 148
diff changeset
    10
        if p not in ret and user.has_right(typ, offer_name = p): 
148
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
    11
                ret.append(p)
152
14c99c89edf4 using extendProvide in Job.create
Sandro Knauß <knauss@netzguerilla.net>
parents: 150
diff changeset
    12
        elif user.providers(typ).filter(schema.Offer.provider==p).first():
150
c6896c3374c4 more offer tests an fixes in model.schema
Sandro Knauß <knauss@netzguerilla.net>
parents: 148
diff changeset
    13
            for r in offers[p].routes:
148
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
    14
                n = user.has_right(typ, provider=p, route=r)
150
c6896c3374c4 more offer tests an fixes in model.schema
Sandro Knauß <knauss@netzguerilla.net>
parents: 148
diff changeset
    15
                if n and n not in ret:
148
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
    16
                    ret.append(n)
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
    17
    return ret
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
    18
147
e96e50ae6352 adding config module
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    19
def loadOffers():
e96e50ae6352 adding config module
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    20
    pass
e96e50ae6352 adding config module
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    21
145
b58ce5bb96cc now offers are empty from start
Sandro Knauß <knauss@netzguerilla.net>
parents: 142
diff changeset
    22
offers={}
150
c6896c3374c4 more offer tests an fixes in model.schema
Sandro Knauß <knauss@netzguerilla.net>
parents: 148
diff changeset
    23
providers={}
147
e96e50ae6352 adding config module
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    24
e96e50ae6352 adding config module
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    25
config.registerReload(loadOffers)
e96e50ae6352 adding config module
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    26