[z3-checkins] r40506 - in z3/NudgeNudge/trunk/src/nudgenudge: . review_templates

philikon at codespeak.net philikon at codespeak.net
Wed Mar 14 20:42:35 CET 2007


Author: philikon
Date: Wed Mar 14 20:42:34 2007
New Revision: 40506

Added:
   z3/NudgeNudge/trunk/src/nudgenudge/interfaces.py   (contents, props changed)
   z3/NudgeNudge/trunk/src/nudgenudge/review.py   (contents, props changed)
   z3/NudgeNudge/trunk/src/nudgenudge/review_templates/
   z3/NudgeNudge/trunk/src/nudgenudge/review_templates/index.pt   (contents, props changed)
Modified:
   z3/NudgeNudge/trunk/src/nudgenudge/app.py
Log:
Implement IReview schema, Review model and add form based on
schema.


Modified: z3/NudgeNudge/trunk/src/nudgenudge/app.py
==============================================================================
--- z3/NudgeNudge/trunk/src/nudgenudge/app.py	(original)
+++ z3/NudgeNudge/trunk/src/nudgenudge/app.py	Wed Mar 14 20:42:34 2007
@@ -1,11 +1,11 @@
 import grok
 from zope import schema
+from nudgenudge.interfaces import IReview
+from nudgenudge.review import Review
 
 class NudgeNudge(grok.Application, grok.Container):
 	pass
 
-grok.context(NudgeNudge)
-
 class Index(grok.View):
 	
 	def update(self, package=None):
@@ -15,22 +15,12 @@
 							if obj.package_name == package)
 
 class CreateReview(grok.AddForm):
-	form_fields = grok.Fields(
-		package_name = schema.TextLine(title=u'Package name'),
-		for_display=True # TODO not honored
-	) + grok.Fields(
-		summary = schema.Text(title=u'Summary'),
-	)
-	
+	form_fields = grok.AutoFields(IReview) # TODO make package_name read-only
+
 	@grok.action('Create')
-	def create(self, package_name, summary):
-		r = Review(package_name)
+	def create(self, **kw):
+		r = Review(**kw)
 		# TODO disambiguate naming scheme
-		self.context[package_name] = r
+		self.context[kw['package_name']] = r
 		# TODO send object created event
 		self.redirect(self.url(r))
-
-class Review(grok.Model):
-
-	def __init__(self, package_name):
-		self.package_name = package_name

Added: z3/NudgeNudge/trunk/src/nudgenudge/interfaces.py
==============================================================================
--- (empty file)
+++ z3/NudgeNudge/trunk/src/nudgenudge/interfaces.py	Wed Mar 14 20:42:34 2007
@@ -0,0 +1,29 @@
+from zope.interface import Interface
+from zope.schema import ASCIILine, TextLine, Text, Choice
+
+class IReview(Interface):
+	
+	package_name = ASCIILine(
+		title=u'Package name',
+	)
+	
+	version = ASCIILine(
+		title=u'Version',
+	)
+	
+	summary = Text(
+		title=u'Summary',
+	)
+	
+	text = Text(
+		title=u'Text'
+	)
+	
+	score = Choice(
+		title=u'Score',
+		values=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
+	)
+
+	author = TextLine(
+		title=u'Author',
+	)
\ No newline at end of file

Added: z3/NudgeNudge/trunk/src/nudgenudge/review.py
==============================================================================
--- (empty file)
+++ z3/NudgeNudge/trunk/src/nudgenudge/review.py	Wed Mar 14 20:42:34 2007
@@ -0,0 +1,13 @@
+import grok
+from nudgenudge.interfaces import IReview
+
+class Review(grok.Model):
+	grok.implements(IReview)
+
+	# XXX prefer using applyChanges in the add form instead of this
+	def __init__(self, **kw):
+		for key, value in kw.items():
+			setattr(self, key, value)
+
+class Index(grok.View):
+	pass

Added: z3/NudgeNudge/trunk/src/nudgenudge/review_templates/index.pt
==============================================================================
--- (empty file)
+++ z3/NudgeNudge/trunk/src/nudgenudge/review_templates/index.pt	Wed Mar 14 20:42:34 2007
@@ -0,0 +1,2 @@
+<html>
+</html>
\ No newline at end of file


More information about the z3-checkins mailing list