public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/main/, gpackages/apps/packages/
@ 2012-06-03 13:19 Slava Bacherikov
  0 siblings, 0 replies; 5+ messages in thread
From: Slava Bacherikov @ 2012-06-03 13:19 UTC (permalink / raw
  To: gentoo-commits

commit:     ecd91f1a1a2b4a48079b28b17c8bf01a370142d6
Author:     Slava Bacherikov <slava <AT> bacher09 <DOT> org>
AuthorDate: Sat Jun  2 21:33:49 2012 +0000
Commit:     Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua>
CommitDate: Sat Jun  2 21:33:49 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=ecd91f1a

Add HerdsModel and MaintainerModel to databrowse and admin.

---
 gpackages/apps/packages/admin.py |    2 +-
 gpackages/main/urls.py           |    4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/gpackages/apps/packages/admin.py b/gpackages/apps/packages/admin.py
index 5773ce4..08df2c5 100644
--- a/gpackages/apps/packages/admin.py
+++ b/gpackages/apps/packages/admin.py
@@ -1,6 +1,6 @@
 from django.contrib import admin
 from models import EbuildModel, PackageModel, LicensModel, CategoryModel, \
-                   UseFlagModel,  RepositoryModel, HomepageModel
+                   UseFlagModel,  RepositoryModel, HomepageModel, HerdsModel, MaintainerModel
 
 admin.site.register(EbuildModel)
 admin.site.register(PackageModel)

diff --git a/gpackages/main/urls.py b/gpackages/main/urls.py
index aa0b806..8dcc4a5 100644
--- a/gpackages/main/urls.py
+++ b/gpackages/main/urls.py
@@ -16,9 +16,9 @@ urlpatterns = patterns('',
 )
 
 if DEBUG:
-    from packages.models import EbuildModel, PackageModel, UseFlagModel, LicensModel, CategoryModel, Keyword, ArchesModel, HomepageModel
+    from packages.models import EbuildModel, PackageModel, UseFlagModel, LicensModel, CategoryModel, Keyword, ArchesModel, HomepageModel, HerdsModel, MaintainerModel
     from django.contrib import databrowse
-    databrowse.site.register(EbuildModel, PackageModel, UseFlagModel, LicensModel, CategoryModel, Keyword, ArchesModel, HomepageModel)
+    databrowse.site.register(EbuildModel, PackageModel, UseFlagModel, LicensModel, CategoryModel, Keyword, ArchesModel, HomepageModel, HerdsModel, MaintainerModel)
     urlpatterns += (
         url(r'^data/(.*)',databrowse.site.root),
         )



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/main/, gpackages/apps/packages/
@ 2012-06-04 20:09 Slava Bacherikov
  0 siblings, 0 replies; 5+ messages in thread
From: Slava Bacherikov @ 2012-06-04 20:09 UTC (permalink / raw
  To: gentoo-commits

commit:     f6e57995151830ada2489d4949cf5d13da36b8b0
Author:     Slava Bacherikov <slava <AT> bacher09 <DOT> org>
AuthorDate: Mon Jun  4 19:43:51 2012 +0000
Commit:     Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua>
CommitDate: Mon Jun  4 19:43:51 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=f6e57995

Changes in model

---
 gpackages/apps/packages/models.py |   40 ++++++++++++++++++++++++++++++++++++-
 gpackages/main/urls.py            |    4 +-
 2 files changed, 41 insertions(+), 3 deletions(-)

diff --git a/gpackages/apps/packages/models.py b/gpackages/apps/packages/models.py
index 81ac823..fbf2e15 100644
--- a/gpackages/apps/packages/models.py
+++ b/gpackages/apps/packages/models.py
@@ -143,6 +143,10 @@ class PackageModel(models.Model):
     objects = managers.PackageManager()
 
     def __unicode__(self):
+        return self.cp
+
+    @property
+    def cp(self):
         return '%s/%s' % (self.category, self.name)
     
     def init_by_package(self, package, category = None):
@@ -153,6 +157,11 @@ class PackageModel(models.Model):
         elif isinstance(category, CategoryModel):
             self.category = category
 
+    def check_or_need_update(self, package):
+        # Need add metadata check to
+        return not( self.changelog_hash == package.changelog_sha1 and \
+                    self.manifest_hash == package.manifest_sha1)
+
     def update_info(self, package):
         self.mtime = package.mtime
         self.changelog_mtime = package.changelog_mtime
@@ -171,6 +180,20 @@ class UseFlagModel(models.Model):
     def __unicode__(self):
         return self.name
 
+class UseFlagDescriptionModel(models.Model):
+    use_flag = models.ForeignKey(UseFlagModel)
+    package = models.ForeignKey(PackageModel)
+    description = models.TextField()
+
+    def check_or_need_update(self, description):
+        return self.description != description 
+
+    def __unicode__(self):
+        return unicode(self.use_flag)
+
+    class Meta:
+        unique_together = ('use_flag', 'package')
+
 class LicensModel(models.Model):
     name = models.CharField(unique = True, max_length = 60)
     #description = TextField()
@@ -214,7 +237,7 @@ class EbuildModel(models.Model):
             self.init_with_keywords(ebuild)
     
     def __unicode__(self):
-        return '%s-%s%s' % (self.package, self.version, ('-'+ self.revision if self.revision else '')) 
+        return self.cpv
     
     def init_by_ebuild(self, ebuild):
         self.is_masked = ebuild.is_masked
@@ -226,6 +249,9 @@ class EbuildModel(models.Model):
         #self.homepage = ebuild.homepage
         self.description = ebuild.description
 
+    def check_or_need_update(self, ebuild):
+        return not(self.ebuild_hash == ebuild.sha1)
+
     def init_related(self, ebuild, package = None):
         self.init_by_ebuild(ebuild)
         if package is None:
@@ -260,6 +286,18 @@ class EbuildModel(models.Model):
             l.append(ko)
         self.keyword_set.add(*l)
 
+    @property
+    def cp(self):
+        return self.package.cp
+
+    @property
+    def cpv(self):
+        return '%s-%s' % (self.package, self.fullversion) 
+
+    @property
+    def fullversion(self):
+        return '%s%s' %  (self.version, ('-'+ self.revision if self.revision else ''))
+
     class Meta:
         unique_together = ('package', 'version', 'revision')
         

diff --git a/gpackages/main/urls.py b/gpackages/main/urls.py
index 8dcc4a5..ff701b6 100644
--- a/gpackages/main/urls.py
+++ b/gpackages/main/urls.py
@@ -16,9 +16,9 @@ urlpatterns = patterns('',
 )
 
 if DEBUG:
-    from packages.models import EbuildModel, PackageModel, UseFlagModel, LicensModel, CategoryModel, Keyword, ArchesModel, HomepageModel, HerdsModel, MaintainerModel
+    from packages.models import EbuildModel, PackageModel, UseFlagModel, LicensModel, CategoryModel, Keyword, ArchesModel, HomepageModel, HerdsModel, MaintainerModel, UseFlagDescriptionModel
     from django.contrib import databrowse
-    databrowse.site.register(EbuildModel, PackageModel, UseFlagModel, LicensModel, CategoryModel, Keyword, ArchesModel, HomepageModel, HerdsModel, MaintainerModel)
+    databrowse.site.register(EbuildModel, PackageModel, UseFlagModel, LicensModel, CategoryModel, Keyword, ArchesModel, HomepageModel, HerdsModel, MaintainerModel, UseFlagDescriptionModel)
     urlpatterns += (
         url(r'^data/(.*)',databrowse.site.root),
         )



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/main/, gpackages/apps/packages/
@ 2012-06-12 18:34 Slava Bacherikov
  0 siblings, 0 replies; 5+ messages in thread
From: Slava Bacherikov @ 2012-06-12 18:34 UTC (permalink / raw
  To: gentoo-commits

commit:     83f469c74743e5d0be5af88299aea6f3b2fb3dde
Author:     Slava Bacherikov <slava <AT> bacher09 <DOT> org>
AuthorDate: Mon Jun 11 23:23:12 2012 +0000
Commit:     Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua>
CommitDate: Mon Jun 11 23:23:12 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=83f469c7

Normalize database, add VirtualPackageModel

---
 gpackages/apps/packages/admin.py    |   10 ++++++-
 gpackages/apps/packages/managers.py |   20 ++++++++++++---
 gpackages/apps/packages/models.py   |   45 +++++++++++++++++++++++-----------
 gpackages/main/urls.py              |    9 ++++---
 4 files changed, 59 insertions(+), 25 deletions(-)

diff --git a/gpackages/apps/packages/admin.py b/gpackages/apps/packages/admin.py
index a316c72..42b854b 100644
--- a/gpackages/apps/packages/admin.py
+++ b/gpackages/apps/packages/admin.py
@@ -1,8 +1,9 @@
 from django.contrib import admin
 from django.db.models import Count
 from models import EbuildModel, PackageModel, LicensModel, CategoryModel, \
-                   UseFlagModel,  RepositoryModel, HomepageModel, HerdsModel, \
-                   MaintainerModel, Keyword, ArchesModel, UseFlagDescriptionModel
+                   UseFlagModel,  RepositoryModel, HomepageModel, MaintainerModel, \
+                   Keyword, ArchesModel, UseFlagDescriptionModel, HerdsModel, \
+                   VirtualPackageModel
 
 class AbstractAnnotateAdmin(object):
     annotate_dict = {}
@@ -38,6 +39,10 @@ class EbuildAdmin(admin.ModelAdmin):
     list_select_related = True
     inlines = (KeywordAdmin,)
 
+class VirtualPackageAdmin(admin.ModelAdmin):
+    list_display = ('__unicode__',)
+    search_fields = ('name',)
+
 class PackageAdmin(EbuildsCountAdmin, admin.ModelAdmin):
     list_display = ('__unicode__', 'ebuilds_count')
     list_filter = ('created_datetime', 'updated_datetime', 'herds')
@@ -69,6 +74,7 @@ class LicensAdmin(EbuildsCountAdmin, admin.ModelAdmin):
 
 
 admin.site.register(EbuildModel, EbuildAdmin)
+admin.site.register(VirtualPackageModel, VirtualPackageAdmin)
 admin.site.register(PackageModel, PackageAdmin)
 admin.site.register(LicensModel, LicensAdmin)
 admin.site.register(CategoryModel)

diff --git a/gpackages/apps/packages/managers.py b/gpackages/apps/packages/managers.py
index 5ef2ed6..2ca2dc8 100644
--- a/gpackages/apps/packages/managers.py
+++ b/gpackages/apps/packages/managers.py
@@ -23,11 +23,11 @@ def _gen_all_query_and_manager(mixin_name, name_for_query, name_for_manager, *ar
         globals()[q_name], globals()[m_name] = q, m
         
 
-class PackageMixin(object):#{{{
+class PackageMixin(object):
     def get(self, package = None, *args, **kwargs):
         if package is not None and isinstance(package, Package):
             if 'category' not in kwargs:
-                kwargs.update({'category__category' : package.category})
+                kwargs.update({'category' : package.category})
             name = package.name
             if len(args)>=1:
                 args[0] = name
@@ -38,8 +38,20 @@ class PackageMixin(object):#{{{
         elif package is not None:
             # Bad code !!
             category, name = package.split('/')
-            kwargs.update({'name': name, 'category__category': category})
-        return super(PackageMixin, self).get(*args, **kwargs)#}}}
+            kwargs.update({'name': name, 'category': category})
+        return super(PackageMixin, self).get(*args, **kwargs)
+
+    def filter(self, **kwargs):
+        category, name = get_from_kwargs_and_del(('category','name'), kwargs)
+        if name is not None:
+            kwargs.update({'virtual_package__name': name})
+        if category is not None:
+            if isinstance(category, packages.models.CategoryModel):
+                kwargs.update({'virtual_package__category': category})
+            else:
+                kwargs.update({'virtual_package__category__category': category})
+
+        return super(PackageMixin, self).filter(**kwargs)
 
 
 class KeywordMixin(object):#{{{

diff --git a/gpackages/apps/packages/models.py b/gpackages/apps/packages/models.py
index b2170f1..e9a43b4 100644
--- a/gpackages/apps/packages/models.py
+++ b/gpackages/apps/packages/models.py
@@ -96,18 +96,31 @@ class HerdsModel(AbstractDateTimeModel):
     def __unicode__(self):
         return self.name
 
+class VirtualPackageModel(models.Model):
+    name = models.CharField(max_length = 254)
+    category = models.ForeignKey(CategoryModel)
+
+    @property
+    def cp(self):
+        return "%s/%s" % (unicode(self.category), self.name)
+
+    def __unicode__(self):
+        return unicode(self.cp)
+
+    class Meta:
+        unique_together = ('name', 'category')
+
 class PackageModel(AbstractDateTimeModel):
     def __init__(self, *args, **kwargs):
-        package_object = get_from_kwargs_and_del('package', kwargs)
+        package_object, category = \
+            get_from_kwargs_and_del(('package','category' ), kwargs)
         
         super(PackageModel, self).__init__(*args, **kwargs)
         if isinstance(package_object, Package):
-            self.init_by_package(package_object, category = kwargs.get('category'))
+            self.init_by_package(package_object, category = category)
             
         
-
-    name = models.CharField(max_length = 254)
-    category = models.ForeignKey(CategoryModel)
+    virtual_package = models.ForeignKey(VirtualPackageModel)
     changelog = models.TextField(blank = True, null = True)
     changelog_hash = models.CharField(max_length = 128)
     manifest_hash = models.CharField(max_length = 128)
@@ -130,14 +143,18 @@ class PackageModel(AbstractDateTimeModel):
 
     @property
     def cp(self):
-        return "%s/%s" % (unicode(self.category), self.name)
-    
-    def init_by_package(self, package, category = None):
-        self.name = package.name
+        return self.virtual_package.cp 
+
+    def init_by_package(self, package, category = None, virtual_package = None):
+        #self.name = package.name
         self.update_info(package)
-        if category is None:
-            self.category, created = CategoryModel \
-                .objects.get_or_create(category = package.category)
+        if virtual_package is None:
+            if category is None:
+                category, created = CategoryModel \
+                    .objects.get_or_create(category = package.category)
+            self.virtual_package, created = VirtualPackageModel.objects \
+                .get_or_create(name = package.name, category = category)
+
 
         elif isinstance(category, CategoryModel):
             self.category = category
@@ -163,7 +180,7 @@ class PackageModel(AbstractDateTimeModel):
         self.description = package.description
 
     class Meta:
-        unique_together = ('name', 'category', 'repository')
+        unique_together = ('virtual_package', 'repository')
 
 class UseFlagModel(models.Model):
     name = models.CharField(unique = True, max_length = 60)
@@ -211,7 +228,6 @@ class EbuildModel(AbstractDateTimeModel):
 
     #eapi = models.PositiveSmallIntegerField(default = 0)
     #slot = models.PositiveSmallIntegerField(default = 0)
-
     
 
     objects = managers.EbuildManager()
@@ -290,7 +306,6 @@ class EbuildModel(AbstractDateTimeModel):
         unique_together = ('package', 'version', 'revision')
         
             
-
 class Keyword(models.Model):
     STATUS_CHOICES = (
         (0, 'STABLE'),

diff --git a/gpackages/main/urls.py b/gpackages/main/urls.py
index ad74f35..b40d000 100644
--- a/gpackages/main/urls.py
+++ b/gpackages/main/urls.py
@@ -21,12 +21,13 @@ if DEBUG:
                                 LicensModel, CategoryModel, Keyword, \
                                 ArchesModel, HomepageModel, HerdsModel, \
                                 MaintainerModel, UseFlagDescriptionModel, \
-                                RepositoryModel
+                                RepositoryModel, VirtualPackageModel
 
     databrowse.site.register(EbuildModel, PackageModel, UseFlagModel, 
-                             LicensModel, CategoryModel, Keyword, ArchesModel, \
-                             HomepageModel, HerdsModel, MaintainerModel, \
-                             UseFlagDescriptionModel, RepositoryModel)
+                             LicensModel, CategoryModel, Keyword, ArchesModel, 
+                             HomepageModel, HerdsModel, MaintainerModel, 
+                             UseFlagDescriptionModel, RepositoryModel, 
+                             VirtualPackageModel)
     urlpatterns += (
         url(r'^data/(.*)',databrowse.site.root),
         url(r'^404/$','django.views.defaults.page_not_found', name = '404'),



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/main/, gpackages/apps/packages/
@ 2012-06-14 23:11 Slava Bacherikov
  0 siblings, 0 replies; 5+ messages in thread
From: Slava Bacherikov @ 2012-06-14 23:11 UTC (permalink / raw
  To: gentoo-commits

commit:     9aa43662284ea5ba65264217e76434ca8b038972
Author:     Slava Bacherikov <slava <AT> bacher09 <DOT> org>
AuthorDate: Thu Jun 14 23:10:52 2012 +0000
Commit:     Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua>
CommitDate: Thu Jun 14 23:10:52 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=9aa43662

Fix typo LicenseModel

---
 gpackages/apps/packages/admin.py  |    6 +++---
 gpackages/apps/packages/models.py |    6 +++---
 gpackages/apps/packages/scan.py   |    2 +-
 gpackages/main/urls.py            |    4 ++--
 4 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/gpackages/apps/packages/admin.py b/gpackages/apps/packages/admin.py
index f803372..9ce400d 100644
--- a/gpackages/apps/packages/admin.py
+++ b/gpackages/apps/packages/admin.py
@@ -1,6 +1,6 @@
 from django.contrib import admin
 from django.db.models import Count
-from models import EbuildModel, PackageModel, LicensModel, CategoryModel, \
+from models import EbuildModel, PackageModel, LicenseModel, CategoryModel, \
                    UseFlagModel,  RepositoryModel, HomepageModel, MaintainerModel, \
                    Keyword, ArchesModel, UseFlagDescriptionModel, HerdsModel, \
                    VirtualPackageModel
@@ -68,7 +68,7 @@ class HomepageAdmin(admin.ModelAdmin):
     list_display = ('url',)
     search_fields = ('url',)
 
-class LicensAdmin(EbuildsCountAdmin, admin.ModelAdmin):
+class LicenseAdmin(EbuildsCountAdmin, admin.ModelAdmin):
     list_display = ('name', 'ebuilds_count')
     search_fields = ('name',)
 
@@ -76,7 +76,7 @@ class LicensAdmin(EbuildsCountAdmin, admin.ModelAdmin):
 admin.site.register(EbuildModel, EbuildAdmin)
 admin.site.register(VirtualPackageModel, VirtualPackageAdmin)
 admin.site.register(PackageModel, PackageAdmin)
-admin.site.register(LicensModel, LicensAdmin)
+admin.site.register(LicenseModel, LicenseAdmin)
 admin.site.register(CategoryModel)
 admin.site.register(UseFlagModel, UseFlagAdmin)
 admin.site.register(UseFlagDescriptionModel, UseFlagDescriptionAdmin)

diff --git a/gpackages/apps/packages/models.py b/gpackages/apps/packages/models.py
index 80ebc9e..612de5b 100644
--- a/gpackages/apps/packages/models.py
+++ b/gpackages/apps/packages/models.py
@@ -228,7 +228,7 @@ class UseFlagDescriptionModel(models.Model):
     class Meta:
         unique_together = ('use_flag', 'package')
 
-class LicensModel(models.Model):
+class LicenseModel(models.Model):
     name = models.CharField(unique = True, max_length = 60)
     #description = TextField()
     
@@ -241,7 +241,7 @@ class EbuildModel(AbstractDateTimeModel):
     version = models.CharField(max_length = 26)
     revision = models.CharField(max_length = 12)
     use_flags = models.ManyToManyField(UseFlagModel)
-    licenses = models.ManyToManyField(LicensModel)
+    licenses = models.ManyToManyField(LicenseModel)
     license = models.CharField(max_length = 254, blank = True )
     ebuild_hash = models.CharField(max_length = 128)
     ebuild_mtime = models.DateTimeField(blank = True, null = True)
@@ -290,7 +290,7 @@ class EbuildModel(AbstractDateTimeModel):
         self.save()
         l = []
         for license in ebuild.licenses:
-            k, created = LicensModel.objects.get_or_create(name = license)
+            k, created = LicenseModel.objects.get_or_create(name = license)
             if created:
                 k.save()
             l.append(k)

diff --git a/gpackages/apps/packages/scan.py b/gpackages/apps/packages/scan.py
index cdd9538..f4c6377 100644
--- a/gpackages/apps/packages/scan.py
+++ b/gpackages/apps/packages/scan.py
@@ -317,7 +317,7 @@ class Scanner(object):
 
     def get_licenses_objects(self, ebuild):
         licenses = ebuild.licenses
-        return _get_items(licenses, models.LicensModel, 'name', self.licenses_cache)
+        return _get_items(licenses, models.LicenseModel, 'name', self.licenses_cache)
 
     def get_uses_objects(self, ebuild):
         uses = [ use.name for use in ebuild.iter_uses() ]

diff --git a/gpackages/main/urls.py b/gpackages/main/urls.py
index 262300f..8e8c588 100644
--- a/gpackages/main/urls.py
+++ b/gpackages/main/urls.py
@@ -19,13 +19,13 @@ if DEBUG:
     from django.contrib import databrowse
     from packages.views import TemplatesDebugView 
     from packages.models import EbuildModel, PackageModel, UseFlagModel, \
-                                LicensModel, CategoryModel, Keyword, \
+                                LicenseModel, CategoryModel, Keyword, \
                                 ArchesModel, HomepageModel, HerdsModel, \
                                 MaintainerModel, UseFlagDescriptionModel, \
                                 RepositoryModel, VirtualPackageModel 
 
     databrowse.site.register(EbuildModel, PackageModel, UseFlagModel, 
-                             LicensModel, CategoryModel, Keyword, ArchesModel, 
+                             LicenseModel, CategoryModel, Keyword, ArchesModel, 
                              HomepageModel, HerdsModel, MaintainerModel, 
                              UseFlagDescriptionModel, RepositoryModel, 
                              VirtualPackageModel)



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/main/, gpackages/apps/packages/
@ 2012-07-30 23:30 Slava Bacherikov
  0 siblings, 0 replies; 5+ messages in thread
From: Slava Bacherikov @ 2012-07-30 23:30 UTC (permalink / raw
  To: gentoo-commits

commit:     41baf0063cc9cfa177fab60cc9a7cfab0e982b9d
Author:     Slava Bacherikov <slava <AT> bacher09 <DOT> org>
AuthorDate: Mon Jul 30 17:09:45 2012 +0000
Commit:     Slava Bacherikov <slava <AT> bacherikov <DOT> org <DOT> ua>
CommitDate: Mon Jul 30 17:09:45 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gentoo-packages.git;a=commit;h=41baf006

Add simple sitemap

---
 gpackages/apps/packages/views.py |   11 +++++++++++
 gpackages/main/settings.py       |    1 +
 gpackages/main/urls.py           |   13 +++++++++++++
 3 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/gpackages/apps/packages/views.py b/gpackages/apps/packages/views.py
index 78ed365..0d483f9 100644
--- a/gpackages/apps/packages/views.py
+++ b/gpackages/apps/packages/views.py
@@ -12,6 +12,7 @@ from django.core.urlresolvers import reverse
 
 from django.shortcuts import get_object_or_404
 from package_info.parse_cp import EbuildParseCPVR, PackageParseCPR
+from django.contrib.sitemaps import Sitemap
 
 arches = ['alpha', 'amd64', 'arm', 'hppa', 'ia64', 'ppc', 'ppc64', 'sparc', 'x86']
 
@@ -278,3 +279,13 @@ class MainPageFeed(FeedWithUpdated):
 class MainPageFeedAtom(MainPageFeed):
     link = '/atom/'
     feed_type = RightAtom1Feed
+
+class PackageSitemap(Sitemap):
+    priority = 0.9
+    changefreq = "hourly"
+
+    def items(self):
+        return PackageModel.objects.all()[:1000]
+
+    def lastmod(self, obj):
+        return obj.updated_datetime

diff --git a/gpackages/main/settings.py b/gpackages/main/settings.py
index cf524f7..6046db8 100644
--- a/gpackages/main/settings.py
+++ b/gpackages/main/settings.py
@@ -126,6 +126,7 @@ INSTALLED_APPS = (
     'django.contrib.staticfiles',
     'django.contrib.admin',
     'django.contrib.flatpages',
+    'django.contrib.sitemaps',
     # 'django.contrib.admindocs',
     #
     'south',

diff --git a/gpackages/main/urls.py b/gpackages/main/urls.py
index c0c3e67..b9958d5 100644
--- a/gpackages/main/urls.py
+++ b/gpackages/main/urls.py
@@ -1,6 +1,18 @@
 from django.conf.urls import patterns, include, url
 from django.contrib import admin
 from main.settings import DEBUG
+from django.contrib.sitemaps import FlatPageSitemap
+from packages.views import PackageSitemap
+
+# For caching sitemap
+from django.contrib.sitemaps import views as sitemaps_views
+from django.views.decorators.cache import cache_page
+
+sitemaps = {
+    'flatpages': FlatPageSitemap,
+    'packages' : PackageSitemap,
+}
+cached_sitemap = cache_page(3600)(sitemaps_views.sitemap)
 
 admin.autodiscover()
 
@@ -9,6 +21,7 @@ urlpatterns = patterns('',
     url(r'^i18n/' , include('django.conf.urls.i18n')),
     url(r'^setlang/$', 'generic.views.set_lang_view', name = 'setlang'),
     url(r'', include('packages.urls')),
+    (r'^sitemap\.xml$', cached_sitemap, {'sitemaps': sitemaps}),
 )
 
 if DEBUG:


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-07-30 23:30 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-06-12 18:34 [gentoo-commits] proj/gentoo-packages:master commit in: gpackages/main/, gpackages/apps/packages/ Slava Bacherikov
  -- strict thread matches above, loose matches on Subject: below --
2012-07-30 23:30 Slava Bacherikov
2012-06-14 23:11 Slava Bacherikov
2012-06-04 20:09 Slava Bacherikov
2012-06-03 13:19 Slava Bacherikov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox