コード例 #1
0
 def test_member_names_includes_alt_names(self):
     m = Member(name='test member')
     self.assertEqual(m.names, ['test member'])
     m.save()
     MemberAltname(member=m, name='test2').save()
     self.assertEqual(m.names, ['test member', 'test2'])
コード例 #2
0
ファイル: tests.py プロジェクト: amirnissim/Open-Knesset
 def testNames(self):
     m=Member(name='test member')
     self.assertEqual(m.names, ['test member'])
     m.save()
     MemberAltname(member=m,name='test2').save()
     self.assertEqual(m.names, ['test member','test2'])
コード例 #3
0
    def update_members_from_file(self):
        logger.debug('update_members_from_file')
        f = gzip.open(os.path.join(DATA_ROOT, 'members.tsv.gz'))
        content = f.read().split('\n')
        for line in content:
            if len(line) <= 1:
                continue
            (member_id, name, img_url, phone, fax, website, email,
             family_status, number_of_children, date_of_birth,
             year_of_birth, place_of_birth, date_of_death,
             year_of_aliyah, k18, k19, _) = line.split('\t')
            if email != '':
                email = email.split(':')[1]
            try:
                if date_of_birth.find(',') >= 0:
                    date_of_birth = date_of_birth.split(',')[1].strip(' ')
                date_of_birth = datetime.datetime.strptime(date_of_birth, "%d/%m/%Y")
            except:
                date_of_birth = None
            try:
                if date_of_birth.find(',') >= 0:
                    date_of_death = date_of_birth.split(',')[1].strip(' ')
                date_of_death = datetime.datetime.strptime(date_of_death, "%d/%m/%Y")
            except:
                date_of_death = None
            try:
                year_of_birth = int(year_of_birth)
            except:
                year_of_birth = None
            try:
                year_of_aliyah = int(year_of_aliyah)
            except:
                year_of_aliyah = None
            try:
                number_of_children = int(number_of_children)
            except:
                number_of_children = None

            try:
                m = Member.objects.get(id=member_id)
                m.phone = phone
                m.fax = fax
                m.email = email
                m.family_status = family_status
                m.number_of_children = number_of_children
                m.date_of_death = date_of_death
                m.save()
                logger.debug('updated member %d' % m.id)
            except Member.DoesNotExist:  # member_id not found. create new
                m = Member(id=member_id, name=name, img_url=img_url, phone=phone, fax=fax, website=None, email=email,
                           family_status=family_status,
                           number_of_children=number_of_children, date_of_birth=date_of_birth,
                           place_of_birth=place_of_birth,
                           date_of_death=date_of_death, year_of_aliyah=year_of_aliyah)
                m.save()
                m = Member.objects.get(pk=member_id)  # make sure we are are
                # working on the db object. e.g m.id is a number.
                logger.debug('created member %d' % m.id)
                if len(website) > 0:
                    l = Link(title='אתר האינטרנט של %s' % name, url=website,
                             content_type=ContentType.objects.get_for_model(m), object_pk=str(m.id))
                    l.save()

            if k19:  # KNESSET 19 specific
                parties = Party.objects.filter(knesset_id=19).values_list('name', 'id')
                k19 = k19.decode(ENCODING)
                for k, v in parties:
                    if k in k19:
                        m.current_party_id = int(v)
                        logger.debug('member %s, k19 %s, party %s'
                                     % (m.name,
                                        k19,
                                        k))
                        m.save()
                if m.current_party is None:
                    logger.debug('member %s, k19 %s not found' %
                                 (m.name,
                                  k19))