Tony Mack | 743ddf2 | 2013-04-02 07:36:25 -0400 | [diff] [blame] | 1 | from plstackapi.core.models import Site |
Tony Mack | f593dba | 2013-03-24 13:17:43 -0400 | [diff] [blame] | 2 | |
| 3 | class SiteImporter: |
| 4 | |
Tony Mack | 743ddf2 | 2013-04-02 07:36:25 -0400 | [diff] [blame] | 5 | def __init__(self, api): |
| 6 | self.api = api |
| 7 | self.remote_sites = {} |
| 8 | self.local_sites = {} |
Tony Mack | f593dba | 2013-03-24 13:17:43 -0400 | [diff] [blame] | 9 | |
| 10 | def run(self): |
Tony Mack | f593dba | 2013-03-24 13:17:43 -0400 | [diff] [blame] | 11 | db_sites = Site.objects.all() |
Tony Mack | 743ddf2 | 2013-04-02 07:36:25 -0400 | [diff] [blame] | 12 | for db_site in db_sites: |
| 13 | self.local_sites[db_site.login_base] = db_site |
Tony Mack | dd12c68 | 2013-04-02 10:15:27 -0400 | [diff] [blame] | 14 | print "%s local sites" % len(db_sites) |
Tony Mack | 743ddf2 | 2013-04-02 07:36:25 -0400 | [diff] [blame] | 15 | |
| 16 | sites = self.api.GetSites() |
Tony Mack | 8ba7760 | 2013-04-02 10:17:59 -0400 | [diff] [blame^] | 17 | print "%s remote sites" %s len(sites) |
Tony Mack | f1afe39 | 2013-04-02 07:40:38 -0400 | [diff] [blame] | 18 | count = 0 |
Tony Mack | f593dba | 2013-03-24 13:17:43 -0400 | [diff] [blame] | 19 | for site in sites: |
Tony Mack | 743ddf2 | 2013-04-02 07:36:25 -0400 | [diff] [blame] | 20 | self.remote_sites[site['site_id']] = site |
| 21 | if site['login_base'] not in self.local_sites: |
Tony Mack | f593dba | 2013-03-24 13:17:43 -0400 | [diff] [blame] | 22 | new_site = Site(name=site['name'], |
| 23 | site_url=site['url'], |
| 24 | enabled=site['enabled'], |
| 25 | longitude=site['longitude'], |
| 26 | latitude=site['latitude'], |
| 27 | is_public=site['is_public'], |
| 28 | abbreviated_name=site['abbreviated_name']) |
| 29 | new_site.save() |
Tony Mack | f1afe39 | 2013-04-02 07:40:38 -0400 | [diff] [blame] | 30 | count += 1 |
Tony Mack | 743ddf2 | 2013-04-02 07:36:25 -0400 | [diff] [blame] | 31 | self.local_sites[new_site.login_base] = new_site |
Tony Mack | f1afe39 | 2013-04-02 07:40:38 -0400 | [diff] [blame] | 32 | print "imported %s sites" % count |