<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,4 +1,5 @@
 
+8/27/08:  adding demisauce support for non js comments, etc.
 5/18/08:  adding anchor tags to show comments for index page with more than one item to go to detail page
 5/18/08:  added preview capability to blog posts so you don't have to publish to preview
 5/18/08:  pushed large set of changes to include Demisauce comments in Potlatch Blog</diff>
      <filename>CHANGELOG</filename>
    </modified>
    <modified>
      <diff>@@ -10,6 +10,7 @@ from google.appengine.ext import webapp
 from google.appengine.ext import db
 
 from model import *
+from demisaucepy import cache, cfg
 
 def rebuild_cache(blog):
     &quot;&quot;&quot;
@@ -18,7 +19,7 @@ def rebuild_cache(blog):
     &quot;&quot;&quot;
     pages = Entry.all().filter(&quot;entrytype =&quot;, &quot;page&quot;).filter(&quot;published =&quot;, True).fetch(20)
     archives = Archive.all().order('-date').fetch(10)
-    recententries = Entry.all().filter('entrytype =','post').filter(&quot;published&quot;, True).order('-date').fetch(10)
+    recententries = Entry.allpublished().fetch(10)
     links = Link.all().filter('linktype =','blogroll')
     template_vals = {'recententries':recententries,'pages':pages,
             'links':links,'archives':archives}
@@ -43,6 +44,7 @@ def requires_admin(method):
             return method(self, *args, **kwargs)
     return wrapper
     
+
 def printinfo(method):
     @wraps(method)
     def wrapper(self, *args, **kwargs):
@@ -59,8 +61,13 @@ class BaseController(webapp2.RequestHandler):
     def __init__(self):
         self.template = 'index.html'
         self.blog = Blog.all().fetch(1)
+        self.demisauce_url = 'http://www.demisauce.com'
+        if 'demisauce.url' in cfg.CFG:
+            self.demisauce_url = cfg.CFG['demisauce.url']
         if self.blog == []:
-            pass
+            self.blog = Blog()
+            self.blog.initialsetup()
+            self.blog.save()
         else:
             self.blog = self.blog[0]
         current_userisadmin = False
@@ -100,7 +107,8 @@ class BaseController(webapp2.RequestHandler):
         
         self.template_vals.update({'url':url,
                          'url_linktext':url_linktext,
-                         'blog':self.blog
+                         'blog':self.blog,
+                         'demisauce_url':self.demisauce_url
                          })
         self.template_vals.update(template_vals)
         path = os.path.join(os.path.dirname(__file__), template_file)
@@ -121,8 +129,7 @@ class MainPage(BasePublicPage):
     def get(self,slug=None):
         entries = []
         if slug == None:
-            entries = Entry.all().filter('entrytype =','post').\
-                filter(&quot;published =&quot;, True).order('-date').fetch(10)
+            entries = Entry.allpublished().fetch(10)
         else:
             entries = Entry.all().filter('slug', slug).fetch(1)
             if not entries or len(entries) == 0:
@@ -131,6 +138,11 @@ class MainPage(BasePublicPage):
         
         self.render('views/index.html',{'entries':entries,'slug':slug})
     
+    def xget(self,slug=None):
+        for name in os.environ.keys():
+              self.response.out.write(&quot;%s = %s&lt;br /&gt;\n&quot; % (name, os.environ[name]))
+        print 'aaron is here'
+        #ln -s ~/Dropbox/demisauce/demisaucepy/trunk/demisaucepy demisaucepy
 
 class PublicPage(BasePublicPage):
     def get(self,slug=None):
@@ -140,20 +152,19 @@ class PublicPage(BasePublicPage):
 
 class ArchivePage(BasePublicPage):
     def get(self,monthyear=None):
-        entries = Entry.all().filter('monthyear', monthyear).\
-            filter(&quot;published =&quot;, True).filter('entrytype','post').order('-date')
+        entries = Entry.allpublished().filter('monthyear', monthyear)
         self.render('views/index.html',{'entries':entries})
     
 
 class TagPage(BasePublicPage):
     def get(self,tags=None):
-        entries = Entry.all().filter(&quot;tags =&quot;, tags).filter('entrytype =','post').order('-date')
+        entries = Entry.allpublished().filter(&quot;tags =&quot;, tags)
         self.render('views/index.html',{'entries':entries})
     
 
 class FeedHandler(BaseController):
     def get(self,tags=None):
-        entries = Entry.all().filter('entrytype =','post').order('-date').fetch(10)
+        entries = Entry.allpublished().fetch(10)
         if entries and entries[0]:
             last_updated = entries[0].date
             last_updated = last_updated.strftime(&quot;%Y-%m-%dT%H:%M:%SZ&quot;) 
@@ -167,7 +178,6 @@ class AdminConfig(BaseController):
     @requires_admin
     def get(self):
         blogedit = Blog.all().fetch(1)
-        #blog = Blog.all()
         if blogedit:
             blogedit = blogedit[0]
         else:</diff>
      <filename>blog.py</filename>
    </modified>
    <modified>
      <diff>@@ -22,21 +22,39 @@ indexes:
   - name: date
     direction: desc
 
-# Used 56 times in query history.
+# Used 4 times in query history.
 - kind: Entry
   properties:
   - name: entrytype
   - name: date
     direction: desc
 
-# Used 13 times in query history.
+# Unused in query history -- copied from input.
 - kind: Entry
   properties:
   - name: entrytype
+  - name: monthyear
   - name: published
   - name: date
     direction: desc
 
+# Used 8 times in query history.
+- kind: Entry
+  properties:
+  - name: entrytype
+  - name: published
+  - name: date
+    direction: desc
+
+# Unused in query history -- copied from input.
+- kind: Entry
+  properties:
+  - name: entrytype
+  - name: published
+  - name: tags
+  - name: date
+    direction: desc
+
 # Unused in query history -- copied from input.
 - kind: Entry
   properties:</diff>
      <filename>index.yaml</filename>
    </modified>
    <modified>
      <diff>@@ -3,6 +3,17 @@ from google.appengine.ext import db
 from google.appengine.ext.db import Model as DBModel
 from datetime import datetime
 
+from demisaucepy.django_helper import AggregatorMeta
+from demisaucepy.declarative import has_a, has_many, \
+    aggregator_callable, make_declarative
+from demisaucepy import cfg
+
+
+
+
+cfg.CFG['demisauce.apikey'] = '173726158347a26b3836d1c6c09e6c646461517a'
+cfg.CFG['demisauce.url'] = 'http://localhost:4951'
+cfg.CFG['demisauce.appname'] = 'djangodemo'
 
 class BaseModel(db.Model):
     def __init__(self, parent=None, key_name=None, _app=None, **kwds):
@@ -24,6 +35,9 @@ class BaseModel(db.Model):
                         getattr(self,attrname + '_onchange')(curval,value)
         
         DBModel.__setattr__(self,attrname,value)
+    
+
+class GAEMeta(BaseModel,AggregatorMeta): pass
 
 class Cache(db.Model):
     cachekey = db.StringProperty(multiline=False)
@@ -82,6 +96,7 @@ class Link(db.Model):
     linktext = db.StringProperty(multiline=False,default='')
 
 class Entry(BaseModel):
+    #__metaclass__ = GAEMeta
     author = db.UserProperty()
     blog = db.ReferenceProperty(Blog)
     published = db.BooleanProperty(default=False)
@@ -94,6 +109,8 @@ class Entry(BaseModel):
     entrytype = db.StringProperty(multiline=False,default='post',choices=[
         'post','page'])
     commentcount = db.IntegerProperty(default=0)
+    comments = has_many(name='comment',lazy=True,local_key='slug' )
+    phphello = has_a(name='helloworld',app='phpdemo',lazy=True,local_key='slug' )
     
     def published_onchange(self,curval,newval):
         if self.entrytype == 'post':
@@ -170,4 +187,11 @@ class Entry(BaseModel):
         self.monthyear = my
         self.put()
     
-
+    @classmethod
+    def allpublished(cls,type='post'):
+        return Entry.all().filter('entrytype =',type
+            ).filter(&quot;published =&quot;, True).order('-date')
+    
+make_declarative(Entry.__dict__)
+for attr in Entry.__dict__.keys():
+    print 'attr %s, %s' % (attr,Entry.__dict__[attr])</diff>
      <filename>model.py</filename>
    </modified>
    <modified>
      <diff>@@ -18,7 +18,7 @@
     &lt;li class=&quot;page_item page-item-2&quot;&gt;&lt;a href=&quot;/admin/entry/list/page&quot; title=&quot;Pages&quot;&gt;Pages&lt;/a&gt;&lt;/li&gt;
     &lt;li class=&quot;page_item page-item-2&quot;&gt;&lt;a href=&quot;/admin/setup&quot; title=&quot;About&quot;&gt;Configuration&lt;/a&gt;&lt;/li&gt;
     &lt;li class=&quot;page_item page-item-2&quot; style=&quot;float:right;&quot;&gt;&lt;a href=&quot;{{ url }}&quot; title=&quot;Admin&quot;&gt;{{ url_linktext }}&lt;/a&gt;&lt;/li&gt;
-    &lt;li class=&quot;page_item page-item-2&quot; style=&quot;float:right;font-size:1em&quot;&gt;&lt;a href=&quot;#&quot; id=&quot;dshelp&quot; rel=&quot;facebox&quot; title=&quot;help&quot;&gt;help&lt;/a&gt;&lt;/li&gt;
+    &lt;li class=&quot;page_item page-item-2&quot; style=&quot;float:right;font-size:1em&quot;&gt;&lt;a href=&quot;#&quot; id=&quot;dshelp&quot; rel=&quot;facebox&quot; title=&quot;help&quot;&gt;feedback&lt;/a&gt;&lt;/li&gt;
     &lt;div class=&quot;clear&quot;&gt;&lt;/div&gt;
 &lt;/ul&gt;
 </diff>
      <filename>views/admin_base.html</filename>
    </modified>
    <modified>
      <diff>@@ -6,6 +6,8 @@
     &lt;link rel=&quot;stylesheet&quot; href=&quot;/static/{{ blog.theme }}&quot; type=&quot;text/css&quot; media=&quot;screen&quot; /&gt;
     &lt;link rel=&quot;alternate&quot; type=&quot;application/atom+xml&quot; title=&quot;{{ blog.title }}&quot; href=&quot;{{ blog.feedurl }}&quot; /&gt;
     &lt;script type=&quot;text/javascript&quot; src=&quot;/static/jquery-1.2.6.min.js&quot;&gt;&lt;/script&gt; 
+    
+    
     &lt;link rel=&quot;pingback&quot; href=&quot;/pingback&quot; /&gt;
     {% block head_javascript %}{% endblock %}
 &lt;/head&gt;</diff>
      <filename>views/base.html</filename>
    </modified>
    <modified>
      <diff>@@ -67,6 +67,7 @@
                 
             &lt;/div&gt;
             &lt;div class=&quot;commentmeta&quot;&gt;
+                {{ entry.comments.views.summary }}
                 {% if entry.commentcount %}
                     &lt;a href=&quot;#comments&quot; title=&quot;Comment on Demiauce Comment System&quot;&gt;{{ entry.commentcount }} comments&lt;/a&gt;
                 {% else %} </diff>
      <filename>views/index.html</filename>
    </modified>
    <modified>
      <diff></diff>
      <filename>webapp/__init__.pyc</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>7e590d2b52e39d12910c943b75bf27cb2c45ea5f</id>
    </parent>
  </parents>
  <author>
    <name>Aaron Raddon</name>
    <email>araddon@yahoo.com</email>
  </author>
  <url>http://github.com/araddon/potlatchblog/commit/b289ea8f3f111fb2f50bad4bae140bd5f12fefb7</url>
  <id>b289ea8f3f111fb2f50bad4bae140bd5f12fefb7</id>
  <committed-date>2008-08-31T22:48:56-07:00</committed-date>
  <authored-date>2008-08-31T22:48:56-07:00</authored-date>
  <message>support for demisauce on potlatchblog/gae, bug fix showing unpublished items in rss, empty blog bug</message>
  <tree>8776f171c6705975fb3346d0196396d43462c3af</tree>
  <committer>
    <name>Aaron Raddon</name>
    <email>araddon@yahoo.com</email>
  </committer>
</commit>
