iro/model/offer.py
author Sandro Knauß <knauss@netzguerilla.net>
Mon, 13 Feb 2012 17:16:54 +0100
branchdevel
changeset 148 11e0fdc1a58c
parent 147 e96e50ae6352
child 150 c6896c3374c4
permissions -rw-r--r--
fill extendProvider with life
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
147
e96e50ae6352 adding config module
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
     2
from ..config import config
142
7d0c1fa97123 task._run umbau zu inlineCallbacks
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
     3
7d0c1fa97123 task._run umbau zu inlineCallbacks
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
     4
def getPossibleOffers(recipient, os):
7d0c1fa97123 task._run umbau zu inlineCallbacks
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
     5
    ret = []
7d0c1fa97123 task._run umbau zu inlineCallbacks
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
     6
    for offer in os:
7d0c1fa97123 task._run umbau zu inlineCallbacks
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
     7
        ret.append(offers[offer])
7d0c1fa97123 task._run umbau zu inlineCallbacks
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
     8
    return ret
7d0c1fa97123 task._run umbau zu inlineCallbacks
Sandro Knauß <knauss@netzguerilla.net>
parents: 135
diff changeset
     9
148
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
    10
@dbdefer
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
    11
def extendProvider(session, user, typ, providers):
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
    12
    user = session.merge(user)
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
    13
    ret = []
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
    14
    for p in providers:
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
    15
        if p in offers.keys() and  p not in ret and user.has_right(typ, offer_name = p): 
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
    16
                ret.append(p)
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
    17
        elif user.has_right(typ,provider=p):
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
    18
            rs = [route for route in offers[p].routes if route not in ret]
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
    19
            for r in rs:
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
    20
                n = user.has_right(typ, provider=p, route=r)
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
    21
                if n:
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
    22
                    ret.append(n)
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
    23
    return ret
11e0fdc1a58c fill extendProvider with life
Sandro Knauß <knauss@netzguerilla.net>
parents: 147
diff changeset
    24
147
e96e50ae6352 adding config module
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    25
def loadOffers():
e96e50ae6352 adding config module
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    26
    pass
e96e50ae6352 adding config module
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    27
145
b58ce5bb96cc now offers are empty from start
Sandro Knauß <knauss@netzguerilla.net>
parents: 142
diff changeset
    28
offers={}
147
e96e50ae6352 adding config module
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    29
e96e50ae6352 adding config module
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    30
config.registerReload(loadOffers)
e96e50ae6352 adding config module
Sandro Knauß <knauss@netzguerilla.net>
parents: 145
diff changeset
    31