Esempio n. 1
0
    def addbusiness(self):
        user = users.get_current_user()
        if not user:
            self.redirect('/')

        val = db.GqlQuery("SELECT * FROM Users " + "WHERE email = :1",
                          user.email())
        val_results = val.get()
        if val_results:
            if val_results.is_business:
                self.redirect('/business')
            else:
                self.redirect('/feedme')
        else:  #user is logged into google+ but doesnt have an account yet
            self.redirect('/register')

        #add the user to the database using the same user datapoints
        entry = Users(user_id=user.user_id(),
                      is_business=True,
                      email=user.email())
        entry.put()

        business_name = self.request.get("name")
        business_address = self.request.get("address")
        business_phone = self.request.get("phone")
        business = Business(user_id=user.user_id(),
                            address=business_address,
                            name=business_name,
                            phone_number=db.PhoneNumber(business_phone),
                            location=db.GeoPt(30, -140))
        business.put()

        #done adding user to database so send them to the correct main page
        self.redirect('/business')
Esempio n. 2
0
    def test_entity_to_dict(self):
        """Converts a datastore.Entity instance to a JSON encodable dict."""

        from datetime import datetime
        from gaesynkit import handlers
        from google.appengine.api import datastore
        from google.appengine.api import datastore_types
        from google.appengine.api import users
        from google.appengine.ext import db

        entity = datastore.Entity("Test")
        entity.update({
            "string": "A string.",
            "byte_string": datastore_types.ByteString("Byte String"),
            "boolean": True,
            "int": 42,
            "float": 1.82,
            "date": datetime(2011, 01, 06),
            "list": [1, 2, 3, 4],
            "key": db.Key.from_path("Kind", "name"),
            "user": users.User("*****@*****.**"),
            "email": db.Email("*****@*****.**"),
            "location": db.GeoPt(52.500556, 13.398889),
            "category": db.Category("coding"),
            "link": db.Link("http://www.google.com"),
            "im": db.IM("sip", "foobar"),
            "phone": db.PhoneNumber("1 (206) 555-1212"),
            "address": db.PostalAddress("Address"),
            "rating": db.Rating(99)
        })
Esempio n. 3
0
    def adduser(self):
        user = users.get_current_user()
        if not user:
            self.redirect('/')

        val = db.GqlQuery("SELECT * FROM Users " + "WHERE email = :1",
                          user.email())
        val_results = val.get()
        if val_results:
            if val_results.is_business:
                self.redirect('/business')
            else:
                self.redirect('/feedme')

        user_name = self.request.get("name")
        user_address = self.request.get("address")
        user_phone = self.request.get("phone")
        user_dietary = self.request.get("diet", allow_multiple=True)

        #add the user to the database using the same user datapoints
        new_customer = Customers(user_id=user.user_id(),
                                 email=user.email(),
                                 name=user_name,
                                 address=user_address,
                                 phone_number=db.PhoneNumber(user_phone),
                                 restrictions=user_dietary)
        new_customer.put()
        new_user = Users(user_id=user.user_id(),
                         email=user.email(),
                         is_business=False)
        new_user.put()
        #done adding user to database so send them to the correct main page
        self.redirect('/feedme')
Esempio n. 4
0
 def add(form):
     image_thumb = images.resize(form['image'], 100, 100)
     image_medium = images.resize(form['image'], 480, 480)
     image_small = images.resize(form['image'], 200, 200)
     billboard = Billboard(title=form['title'])
     billboard.phone = db.PhoneNumber(form['phone'])
     billboard.email = db.Email(form['email'])
     billboard.image = db.Blob(form.get('image'))
     billboard.image_thumb = db.Blob(image_thumb)
     billboard.image_medium = db.Blob(image_medium)
     billboard.image_small = db.Blob(image_small)
     billboard.put()
Esempio n. 5
0
    def post(self, member_no):
        member = self.get_member(member_no)

        member.name = self.get_required('name')
        member.address = self.get_required('address')
        member.zipcode = self.get_required('zip')
        member.city = self.get_required('city')
        country = Country.get(self.get_required('country'))

        email = self.get_required('email')
        if email != '':
            member.email = db.Email(email)

        mobile = self.get_required('mobile')
        if mobile != '':
            member.phone = db.PhoneNumber(mobile)

        home = self.request.get('fixed')
        if home != '':
            member.phone_home = db.PhoneNumber(home)

        work = self.request.get('work')
        if work != '':
            member.phone_work = db.PhoneNumber(work)

        member.put()
        member.update_index()

        template = JINJA_ENVIRONMENT.get_template(
            'templates/selfservice/profile_edit.html')
        countries = Country.all().order('order').fetch(FETCH_LIMIT)

        data = {
            'message': 'Medlemsprofilen din er oppdatert.',
            'member': member,
            'countries': countries
        }
        self.response.write(template.render(data))
 def saveAsPendingUser(self, data):
     greek_aff = Greek.gql("WHERE name=:1", data["greek"]).get()
     pending_user = User(email=data['email'],
                         password=md5.new(data['password']).hexdigest(),
                         first_name=data['first_name'],
                         last_name=data['last_name'],
                         phone=db.PhoneNumber(data['phone']),
                         greek_aff=greek_aff,
                         pending=True)
     pending_user.setRandomCode()
     pending_user.put()
     # ask the user to confirm their account
     ConfirmUserEmail(pending_user).send()
     return pending_user
def hook(dct):
    clsType = dct[CLASS_TYPE_STR]
    if clsType == 'date':
        return datetime.date.fromtimestamp(dct[CLASS_VALUE_STR])
    if clsType == 'email':
        return db.Email(dct[CLASS_VALUE_STR])
    if clsType == 'phone':
        return db.PhoneNumber(dct[CLASS_VALUE_STR])
    elif clsType == 'rating':
        return db.Rating(dct[CLASS_VALUE_STR])
    # The constructor can't handle the clsType tag, so delete it!
    dictCopy = dict((key, value) for key, value in dct.iteritems()
                    if not key.startswith('__'))
    return globals()[clsType](**dictCopy).put()
Esempio n. 8
0
    def post(self):
        title = self.request.get('title')
        blurb = self.request.get('blurb')
        phone = self.request.get('phone')
        image = self.request.get('image')
        email = self.request.get('email')
        price = self.request.get('price')

        image_thumb = images.resize(image, 100, 100)
        image_medium = images.resize(image, 480, 480)
        image_small = images.resize(image, 200, 200)
        billboards = self.request.get('selected_billboards')
        billboards = [db.Key(key) for key in billboards.split(' ')]

        ad = Ad(title=title)
        ad.ip = self.request.remote_addr
        ad.sold = False
        ad.blurb = blurb
        ad.image = db.Blob(image)
        ad.image_thumb = db.Blob(image_thumb)
        ad.image_medium = db.Blob(image_medium)
        ad.image_small = db.Blob(image_small)
        ad.phone = db.PhoneNumber(phone)
        ad.email = db.Email(email)
        ad.price2 = int(price)
        ad.billboards = billboards
        ad.put()

        ad.password = hashlib.md5(SALT + ad.ip + str(ad.key())).hexdigest()
        ad.save()

        for billboard in db.get(billboards):
            billboard.ads.append(ad.key())
            billboard.put()

        path = os.path.join(os.path.dirname(__file__), 'success.html')
        self.response.out.write(
            template.render(
                path, {
                    'ad':
                    ad,
                    'secret_link':
                    'http://%s/ads/%s/edit?password=%s' %
                    (self.request.host, ad.key(), ad.password)
                }))
Esempio n. 9
0
def task_member_restore(items):

    for item in items:
        member = Member()
        member.number = item['number']
        member.address = item['address']
        if item['email'] != '' and item['email'] != None:
            member.email = db.Email(item['email'])
        member.name = item['name']
        member.member_since = string_to_date(item['memberSince'])
        if item['phone'] != '' and item['phone'] != None:
            member.phone = db.PhoneNumber(item['phone'])
        if item['phoneWork'] != '' and item['phoneWork'] != None:
            member.phone_work = item['phoneWork']
        if item['phoneHome'] != '' and item['phoneHome'] != None:
            member.phone_home = item['phoneHome']
        member.notes = item['notes']
        member.zipcode = item['zipcode']
        member.city = item['city']
        member.county = item['county']
        member.country = db.get(db.Key.from_path('Country', item['countryId']))
        member.status = db.get(db.Key.from_path('Status', item['statusId']))
        member.membertype = db.get(
            db.Key.from_path('MemberType', item['typeId']))
        member.put()

        for itemdue in item['membershipDues']:
            due = MembershipDues(parent=member,
                                 year=itemdue['year'],
                                 paid=itemdue['paid'])
            due.put()

        for itemcar in item['cars']:
            car = Car()
            car.member = member
            car.registration = itemcar['registration']
            car.model = db.get(db.Key.from_path('CarModel',
                                                itemcar['modelId']))
            car.bought_year = itemcar['boughtYear']
            car.sold_year = itemcar['soldYear']
            car.year = itemcar['year']
            car.notes = itemcar['notes']
            car.serial_no = itemcar['serialNo']
            car.put()
Esempio n. 10
0
    def populate(self):
        context = {}
        bus = Business(location=db.GeoPt(39.95, -75.17),
                       name="Pat's King of Steaks",
                       address="1237 E Passyunk Ave, Philadelphia, PA 19147",
                       boo=0,
                       user_id="32023",
                       phone_number=db.PhoneNumber("+12154681546"))
        bus.update_location()
        bus.put()

        #menu = Menu(user_id="32023",
        #            dish_name="Philly CheeseSteak",
        #            price=6.34,
        #            photo_link="http://www3.gazette.com/bots/sites/default/files/m3rmh6-m3rmgwphillycheesesteaksandwich.jpg",
        #            restriction_list=["Meat", "Dairy"]
        #                )
        #menu.put()
        return self.render_string('loaded the business data', context)
Esempio n. 11
0
    int=10,
    float=5.05,
    datetime=d,
    date=d.date(),
    time=d.time(),
    list=[1, 2, 3],
    strlist=["hello", u'world'],
    user=users.User("*****@*****.**"),
    blob=db.Blob("somerandomdata"),
    text=db.Text("some random text"),
    category=db.Category("awesome"),
    link=db.Link("http://www.10gen.com"),
    email=db.Email("*****@*****.**"),
    geopt=db.GeoPt(40.74067, -73.99367),
    im=db.IM("http://aim.com/", "example"),
    phonenumber=db.PhoneNumber("1 (999) 123-4567"),
    postaladdress=db.PostalAddress("40 W 20th St., New York, NY"),
    rating=db.Rating(99),
)
out = db.get(e1.put())


def failIfNot(reference, value, type):
    assert value == reference
    assert isinstance(value, type)


failIfNot(e1.str, out.str, types.UnicodeType)

failIfNot(e1.bool, out.bool, types.BooleanType)
Esempio n. 12
0
def populate(obj):
    global _obj
    _obj = obj
    WADE = "*****@*****.**"
    CHER = "*****@*****.**"
    admins = [
        ["M", "Wade Carpenter", WADE, ["+1-604-788-5894"]],
        ["F", "Cher Choi", CHER, ["+1-604-833-2437", "+1-604-395-5293"]],
    ]
    players = [
        [
            "M", "Non Admin", "*****@*****.**",
            ["+1-604-420-1297 x 6912"]
        ],
        ["M", "Guy One", "*****@*****.**", []],
        ["M", "Guy Two", "*****@*****.**", []],
        ["F", "Girl One", "*****@*****.**", []],
        ["F", "Girl Two", "*****@*****.**", []],
    ]

    # Add Admins
    for a in admins:
        ph = []
        for p in a[3]:
            ph.append(db.PhoneNumber(p))
        q = models.Admin.all()
        q.filter("name =", a[1])
        q.filter("user ="******"Added admin: %s" % repr(a))
        else:
            log("Admin already exists: %s" % repr(a))
            admin.refresh()
        admin.gender = a[0]
        admin.mail = a[2]
        admin.put()

    # Add Regular Players
    for a in players:
        ph = []
        for p in a[3]:
            ph.append(db.PhoneNumber(p))
        q = models.Player.all()
        q.filter("name =", a[1])
        q.filter("mail =", a[2])
        if q.get() == None:
            pl = models.Player(gender=a[0], name=a[1], mail=a[2], phone=ph)
            pl.put()
            log("Added player: %s" % repr(a))
        else:
            log("Player already exists: %s" % repr(a))

    # Add games (to all teams)
    games = [
        {
            "d": [2012, 6, 2],
            "t": "6:00 PM",
            "dur": 180,
            "info": "Info for game"
        },
        {
            "d": [2012, 6, 9],
            "t": "6:00 PM",
            "dur": 180,
            "info": "Info for game"
        },
        {
            "d": [2012, 6, 16],
            "t": "6:00 PM",
            "dur": 180,
            "info": "Info for game"
        },
        {
            "d": [2012, 6, 23],
            "t": "6:00 PM",
            "dur": 180,
            "info": "Info for game"
        },
        {
            "d": [2012, 6, 30],
            "t": "6:00 PM",
            "dur": 180,
            "info": "Info for game"
        },
        {
            "d": [2012, 7, 3],
            "t": "6:00 PM",
            "dur": 180,
            "info": "MyInfo for game"
        },
        {
            "d": [2012, 7, 10],
            "t": "6:00 PM",
            "dur": 180,
            "info": "Info for game"
        },
        {
            "d": [2012, 7, 17],
            "t": "6:00 PM",
            "dur": 180,
            "info": "Info for game"
        },
        {
            "d": [2012, 7, 24],
            "t": "6:00 PM",
            "dur": 180,
            "info": "Info for game"
        },
        {
            "d": [2012, 7, 31],
            "t": "6:00 PM",
            "dur": 180,
            "info": "Info for game"
        },
        {
            "d": [2012, 8, 3],
            "t": "6:00 PM",
            "dur": 180,
            "info": "Info for game"
        },
        {
            "d": [2012, 8, 10],
            "t": "6:00 PM",
            "dur": 180,
            "info": "Info for game"
        },
        {
            "d": [2012, 8, 17],
            "t": "6:00 PM",
            "dur": 180,
            "info": "Info for game"
        },
        {
            "d": [2012, 8, 24],
            "t": "6:00 PM",
            "dur": 180,
            "info": "Info for game"
        },
        {
            "d": [2012, 8, 31],
            "t": "6:00 PM",
            "dur": 180,
            "info": "Info for game"
        },
        {
            "d": [2012, 9, 3],
            "t": "6:00 PM",
            "dur": 180,
            "info": "Info for game"
        },
        {
            "d": [2012, 9, 10],
            "t": "6:00 PM",
            "dur": 180,
            "info": "Info for game"
        },
        {
            "d": [2012, 9, 17],
            "t": "6:00 PM",
            "dur": 180,
            "info": "Info for game"
        },
        {
            "d": [2012, 9, 24],
            "t": "6:00 PM",
            "dur": 180,
            "info": "Info for game"
        },
        {
            "d": [2012, 9, 30],
            "t": "6:00 PM",
            "dur": 180,
            "info": "Info for game"
        },
    ]

    # Add Teams
    teams = [
        [CHER, "Chronic Injury", [WADE, CHER]],
        [WADE, "Wade's Team", [WADE]],
    ]

    for t in teams:
        q = models.Admin.all()
        user = User(t[0])
        q.filter("user = "******"Can't get owner '%s' for team '%s'" % (user, t[1]))
            continue

        q = models.Team.all()
        q.filter("name = ", t[1])
        q.filter("owner = ", owner)
        team = q.get()
        if team == None:
            team = models.Team(name=t[1], owner=owner)
            team.put()

        for game in games:
            tm = datetime.strptime(game["t"], "%I:%M %p")
            dt = datetime(game["d"][0], game["d"][1], game["d"][2], tm.hour,
                          tm.minute)
            dt = tz.to_utc(dt)
            dt_end = dt + timedelta(minutes=game["dur"])
            log("%s - %s" % (str(dt), str(dt_end)))
            g_q = models.Game.all()
            g_q.filter("team = ", team)
            g_q.filter("start = ", dt)
            g_q.filter("end = ", dt_end)
            gobj = g_q.get()
            if gobj == None:
                gobj = models.Game(start=dt,
                                   end=dt_end,
                                   team=team,
                                   info=game["info"])
            else:
                gobj.info = game["info"]
            gobj.put()

        if team != None:
            if owner.own_teams == None:
                owner.own_teams = []
            if not team.key() in owner.own_teams:
                owner.own_teams.append(team.key())
                owner.put()

            for adm in t[2]:
                aq = models.Admin.all()
                aq.filter("user ="******"Added/updated team %s [owner %s <%s>]" %
                (t[1], owner.name, owner.user.email()))
        else:
            log("Skipped team %s [owner %s <%s>]" %
                (t[1], owner.name, owner.user.email()))
Esempio n. 13
0
    def post(self, member_id):

        if self.request.get('cancel') == '1':
            return self.redirect('/members')

        if self.request.get('operation') == 'delete_car':
            car = Car.get(self.request.get('car_key'))
            if car:
                car.delete()
            return self.redirect('/members/' + member_id + '/edit')

        member = Member.get(member_id)

        if self.request.get('operation') == 'new_car':
            car = Car()
            car.member = member
            car.model = dbutils.get_default_model()
            car.registration = ''
            car.year = 0
            car.notes = ''
            car.serial_no = ''
            car.put()
            return self.redirect('/members/' + member_id + '/car/' +
                                 str(car.key()) + '/edit')

        member.name = self.request.get('name')
        member.address = self.request.get('address')
        member.zipcode = self.request.get('zip')
        member.city = self.request.get('city')
        member.country = Country.get(self.request.get('country'))
        phone = self.request.get('mobile').strip()
        if phone != '':
            member.phone = db.PhoneNumber(phone)
        else:
            member.phone = None
        email = self.request.get('email').strip()
        if email != '':
            member.email = db.Email(email)
        else:
            member.email = None
        home = self.request.get('fixed').strip()
        if home != '':
            member.phone_home = db.PhoneNumber(home)
        else:
            member.phone_home = None
        work = self.request.get('work').strip()
        if work != '':
            member.phone_work = db.PhoneNumber(work)
        else:
            member.phone_work = None
        member.membertype = MemberType.get(self.request.get('type'))
        member.status = Status.get(self.request.get('status'))
        member.notes = self.request.get('note')

        if self.request.get('access_code') == '':
            member.generate_access_code()

        if self.request.get('magazine_count') != '':
            try:
                member.magazine_count = int(self.request.get('magazine_count'))
            except ValueError:
                pass

        member.put()
        member.update_index()

        # save membership dues
        self.save_dues(member)

        return self.redirect('/members')
Esempio n. 14
0
	def createPhoneNumber(self, number, default=DEFAULT_PHONE_NUMBER):
		if number == None or number == '':
			return default
		else:
			return db.PhoneNumber(number)
Esempio n. 15
0
    def ParseItem(self, item, entity_to_parse, parent_entity):
        """Parses a single item of API data and stores the resulting entity.

    Args:
      item: a Python dict representing a single item of data.
      entity_to_parse: the type of entity being created.
      parent_entity: the value to set the entity's parent_entity property to.

    Raises:
      ValueError: if an unknown property is found in the results.

    Returns:
      The entity created by parsing item.
    """
        if "id" in item:
            model_obj = entity_to_parse(parent=self.snapshot,
                                        key_name=str(item["id"]))
        else:
            logging.warning("no id: %s" % item)
            model_obj = entity_to_parse(parent=self.snapshot)
        model_obj.put()
        if parent_entity:
            model_obj.parent_entity = parent_entity
        props = model_obj.properties()
        for key, value in item.items():
            if key not in Parser._EXCLUDED_FIELDS:
                prop_name = Parser.ApiToModel(key)

                if (entity_to_parse, key) in self.model.child_mapping:
                    for item in value:
                        self.ParseItem(
                            item, self.model.child_mapping[entity_to_parse,
                                                           key], model_obj)
                elif (isinstance(props[prop_name], db.StringProperty)
                      or isinstance(props[prop_name], db.TextProperty)
                      or isinstance(props[prop_name], db.BooleanProperty)
                      or isinstance(props[prop_name], db.IntegerProperty)):
                    setattr(model_obj, prop_name, value)
                elif isinstance(props[prop_name], db.FloatProperty):
                    setattr(model_obj, prop_name, float(value))
                elif isinstance(props[prop_name], db.LinkProperty):
                    link = db.Link(value)
                    setattr(model_obj, prop_name, link)
                elif isinstance(props[prop_name], db.PhoneNumberProperty):
                    pn = db.PhoneNumber(value)
                    setattr(model_obj, prop_name, pn)
                elif isinstance(props[prop_name], db.BlobProperty):
                    blob = db.Blob(urlfetch.fetch(value).content)
                    setattr(model_obj, prop_name, blob)
                elif isinstance(props[prop_name], db.DateProperty):
                    # The elif clause for DateProperty must come ABOVE the elif clause for
                    # DateTimeProperty because DateProperty is a subclass of
                    # DateTimeProperty. If we ever add a TimeProperty we will need it
                    # to be above DateTimeProperty as well.
                    d = datetime.datetime.strptime(
                        value, "%Y-%m-%dT00:00:00.000Z").date()
                    setattr(model_obj, prop_name, d)
                elif isinstance(props[prop_name], db.DateTimeProperty):
                    if self.date_type == "friendly":
                        part1, part2 = value.split(".")
                        dt = datetime.datetime.strptime(
                            part1, "%Y-%m-%dT%H:%M:%S")
                        dt = dt.replace(microsecond=int(part2[0:3]) * 1000)
                    elif self.date_type == "timestamp":
                        part1 = value[:-3]
                        part2 = value[-3:]
                        dt = datetime.datetime.fromtimestamp(long(part1))
                        dt = dt.replace(microsecond=int(part2) * 1000)
                    else:
                        raise ValueError("Not a valid date_type: %s" %
                                         self.date_type)
                    setattr(model_obj, prop_name, dt)
                elif isinstance(props[prop_name], db.ReferenceProperty):
                    key_obj = db.Key.from_path(
                        self.snapshot.kind(),
                        self.snapshot.key().id(),
                        props[prop_name].reference_class.kind(), value)
                    setattr(model_obj, prop_name, key_obj)
                elif isinstance(props[prop_name], db.ListProperty):
                    if props[prop_name].item_type == db.Key:
                        key_objs = []
                        for key_obj in value:
                            key_objs.append(
                                db.Key.from_path(
                                    self.snapshot.kind(),
                                    self.snapshot.key().id(),
                                    self.model.many_many_mapping[
                                        entity_to_parse, key].__name__,
                                    key_obj))
                        setattr(model_obj, prop_name, key_objs)
                    else:
                        setattr(model_obj, prop_name, value)
                elif isinstance(props[prop_name],
                                properties.TimeDeltaProperty):
                    milliseconds = long(value)
                    dt = datetime.timedelta(seconds=milliseconds / 1000,
                                            milliseconds=milliseconds % 1000)
                    setattr(model_obj, prop_name, dt)
                elif isinstance(props[prop_name], properties.DictProperty):
                    setattr(model_obj, prop_name, value)
                else:
                    raise ValueError("Could not parse property %s.\n"
                                     "Value: %s" % (key, value))

        model_obj.put()
        return model_obj
Esempio n. 16
0
    def import_members(self, member_csv):
        member_csv = member_csv.split('\n')
        lines = self.unmangle(member_csv)

        count = 0
        for fields in lines:
            #fields.reverse()
            print '-' * 80
            print fields
            print '=' * 80
            fields.reverse()
            member = Member()

            (fee2009, fee2010, fee2011, fee2012,
             fee2013, fee2014) = (fields.pop(), fields.pop(), fields.pop(),
                                  fields.pop(), fields.pop(), fields.pop())

            member.address = fields.pop()
            # Skip the cars
            for carno in range(1, 6):
                (car, registration) = (fields.pop(), fields.pop())

            email = fields.pop()
            if email != '':
                member.email = db.Email(email)

            (lastname, firstname) = (fields.pop(), fields.pop())
            full_name = firstname + ' ' + lastname
            member.name = full_name.strip()

            member.county = fields.pop().strip()
            member_since = fields.pop()
            date = self.string_to_date(member_since)
            if date:
                member.member_since = date
            else:
                print 'Error converting date from', member_since

            country = fields.pop().strip()
            if country == '':
                country = 'Norge'
            member.country = self.string_to_country(country)
            member.membertype = self.string_to_type(fields.pop())
            member.number = fields.pop()
            mobile = fields.pop()
            if mobile != '':
                member.phone = db.PhoneNumber(mobile)

            member.notes = fields.pop()
            member.zipcode = fields.pop()
            member.city = fields.pop()
            work = fields.pop()
            home = fields.pop()
            if work != '':
                member.phone_work = db.PhoneNumber(work)
            if home != '':
                member.phone_home = db.PhoneNumber(home)
            member.status = self.get_status('Medlem')
            member.generate_access_code()
            member.put()

            self.add_due(member, 2009, fee2009 == 'Betalt')
            self.add_due(member, 2010, fee2010 == 'Betalt')
            self.add_due(member, 2011, fee2011 == 'Betalt')
            self.add_due(member, 2012, fee2012 == 'Betalt')
            self.add_due(member, 2013, fee2013 == 'Betalt')
            self.add_due(member, 2014, fee2014 == 'Betalt')
            count = count + 1

        print 'Imported', count, 'members'