[Checkins] SVN: Sandbox/jens/zmi.core/trunk/src/zmi/core/browser/database/ Matches functionality for existing main database.
Charlie Clark
charlie at begeistert.org
Wed Nov 16 22:43:20 UTC 2011
Log message for revision 123390:
Matches functionality for existing main database.
Changed:
U Sandbox/jens/zmi.core/trunk/src/zmi/core/browser/database/overview.py
U Sandbox/jens/zmi.core/trunk/src/zmi/core/browser/database/templates/overview.pt
-=-
Modified: Sandbox/jens/zmi.core/trunk/src/zmi/core/browser/database/overview.py
===================================================================
--- Sandbox/jens/zmi.core/trunk/src/zmi/core/browser/database/overview.py 2011-11-16 16:47:22 UTC (rev 123389)
+++ Sandbox/jens/zmi.core/trunk/src/zmi/core/browser/database/overview.py 2011-11-16 22:43:19 UTC (rev 123390)
@@ -15,14 +15,46 @@
ZODB Overview
"""
-class View(object):
+import datetime
- db_name = "Name of the ZODB"
- db_size = "Size of the ZODB"
+from Acquisition import aq_inner
- def __init__(self, context, request):
- self.context = context
- self.request = request
+from zmi.core.browser.base import ZMIView
+from zmi.core.browser.base import Message as _
+class View(ZMIView):
+
def __call__(self):
- return self.index()
\ No newline at end of file
+ if 'pack' in self.request.form:
+ self.handle_pack(data=self.request.form)
+ return self.redirect()
+ return self.index()
+
+ @property
+ def _db(self):
+ """Return the database connection"""
+ return aq_inner(self.context)._p_jar.db()
+
+ def db_name(self):
+ """Return the name of the database"""
+ return self._db.getName()
+
+ def db_size(self):
+ """Return the size of the database, unformatted if it is a string,
+ otherwise in kilobytes or megabytes"""
+ size = self._db.getSize()
+ if isinstance(size, str):
+ return size
+
+ if size >= 1048576.0:
+ return '%.1fM' % (size/1048576.0)
+ return '%.1fK' % (size/1024.0)
+
+ def handle_pack(self, data):
+ """Pack the database by removing revisions older than the number of days
+ converted into seconds
+ """
+ db = self._db
+ packtime = datetime.timedelta(days=int(data['days']))
+ db.pack(packtime.seconds)
+ self.status = _(u'The database was packed')
Modified: Sandbox/jens/zmi.core/trunk/src/zmi/core/browser/database/templates/overview.pt
===================================================================
--- Sandbox/jens/zmi.core/trunk/src/zmi/core/browser/database/templates/overview.pt 2011-11-16 16:47:22 UTC (rev 123389)
+++ Sandbox/jens/zmi.core/trunk/src/zmi/core/browser/database/templates/overview.pt 2011-11-16 22:43:19 UTC (rev 123390)
@@ -20,19 +20,25 @@
and cache management.
</p>
-
<h2>Database Location:</h2>
<span tal:content="view/db_name">DB NAME</span>
<h2>Database Size:</h2>
<span tal:content="view/db_size">DB SIZE</span>
-<form action="." method="post">
+ <p class="feedback"
+ tal:condition="exists:request/manage_tabs_message"
+ tal:content="request/manage_tabs_message">Status message</p>
+
+
+<form action="." method="post"
+ tal:attributes="action request/ACTUAL_URL">
+
<p>Click <em>pack</em> to pack the Zope database, removing previous revisions
of objects that are older than</p>
<label for="days">days</label>
<input type="text" name="days" value="0">
- <input type="submit" name="submit" value="Pack">
+ <input type="submit" name="pack" value="Pack">
</form>
More information about the checkins
mailing list