EduploneTest/types EduploneTestMemberFolder.py,1.5,1.6 EduploneTestingEnvironment.py,1.22,1.23

Nils Haagen <[email protected]>
Newsgroups gmane.comp.web.zope.eduplone.cvs
Message-ID <[email protected]>
Update of /cvsroot/eduplone/EduploneTest/types
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14785/types

Modified Files:
	EduploneTestMemberFolder.py EduploneTestingEnvironment.py 
Log Message:
still shaky, but users can participate in public test, now... important for demo

Index: EduploneTestingEnvironment.py
===================================================================
RCS file: /cvsroot/eduplone/EduploneTest/types/EduploneTestingEnvironment.py,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -d -r1.22 -r1.23
*** EduploneTestingEnvironment.py	14 Nov 2004 22:30:32 -0000	1.22
--- EduploneTestingEnvironment.py	16 Nov 2004 01:03:16 -0000	1.23
***************
*** 102,105 ****
--- 102,106 ----
          schemata='Settings'
      ),
+     
      BooleanField(
          'verifymembership',
***************
*** 161,164 ****
--- 162,339 ----
  	schemata='Settings'
      ),
+ 
+     IntegerField(
+         'grades_de_15',
+         required=0,
+         searchable = 0,
+         widget=IntegerWidget(label = u"Percent needed to get 15 points",
+                              label_msgid='label_percent_de_15p',
+                              description = u"grading",
+                              description_msgid='help_grading',
+                              i18n_domain='eduplone'),
+         schemata='Grades'
+     ),
+     IntegerField(
+         'grades_de_14',
+         required=1,
+         searchable = 0,
+ 	default = 90,
+         widget=IntegerWidget(label = u"Percent needed to get 14 points / German grade 1",
+                              label_msgid='label_percent_de_14p',
+                              description = u"grading",
+                              description_msgid='help_grading',
+                              i18n_domain='eduplone'),
+         schemata='Grades'
+     ),    
+     IntegerField(
+         'grades_de_13',
+         required=0,
+         searchable = 0,
+         widget=IntegerWidget(label = u"Percent needed to get 13 points",
+                              label_msgid='label_percent_de_13p',
+                              description = u"grading",
+                              description_msgid='help_grading',
+                              i18n_domain='eduplone'),
+         schemata='Grades'
+     ),
+     IntegerField(
+         'grades_de_12',
+         required=0,
+         searchable = 0,
+         widget=IntegerWidget(label = u"Percent needed to get 12 points",
+                               label_msgid='label_percent_de_15p',
+                               description = u"grading",
+                               description_msgid='help_grading',
+                               i18n_domain='eduplone'),
+         schemata='Grades'
+     ),
+     IntegerField(
+         'grades_de_11',
+ 	default = 80,
+         required=1,
+         searchable = 0,
+         widget=IntegerWidget(label = u"Percent needed to get 11 points / German grade 2",
+                               label_msgid='label_percent_de_11p',
+                               description = u"grading",
+                               description_msgid='help_grading',
+                               i18n_domain='eduplone'),
+         schemata='Grades'
+     ),
+     IntegerField(
+         'grades_de_10',
+         required=0,
+         searchable = 0,
+         widget=IntegerWidget(label = u"Percent needed to get 10 points",
+                               label_msgid='label_percent_de_10p',
+                               description = u"grading",
+                               description_msgid='help_grading',
+                               i18n_domain='eduplone'),
+         schemata='Grades'
+     ),
+     IntegerField(
+         'grades_de_9',
+         required=0,
+         searchable = 0,
+         widget=IntegerWidget(label = u"Percent needed to get 9 points",
+                               label_msgid='label_percent_de_09p',
+                               description = u"grading",
+                               description_msgid='help_grading',
+                               i18n_domain='eduplone'),
+         schemata='Grades'
+     ),
+ 
+     IntegerField(
+         'grades_de_8',
+ 	default = 65,
+         required=1,
+         searchable = 0,
+         widget=IntegerWidget(label = u"Percent needed to get 8 points / German grade 3",
+                               label_msgid='label_percent_de_08p',
+                               description = u"grading",
+                               description_msgid='help_grading',
+                               i18n_domain='eduplone'),
+         schemata='Grades'
+     ),
+     IntegerField(
+         'grades_de_7',
+         required=0,
+         searchable = 0,
+         widget=IntegerWidget(label = u"Percent needed to get 7 points",
+                               label_msgid='label_percent_de_07p',
+                               description = u"grading",
+                               description_msgid='help_grading',
+                               i18n_domain='eduplone'),
+         schemata='Grades'
+     ),
+     IntegerField(
+         'grades_de_6',
+         required=0,
+         searchable = 0,
+         widget=IntegerWidget(label = u"Percent needed to get 6 points",
+                               label_msgid='label_percent_de_06p',
+                               description = u"grading",
+                               description_msgid='help_grading',
+                               i18n_domain='eduplone'),
+         schemata='Grades'
+     ),
+     IntegerField(
+         'grades_de_5',
+ 	default = '50',
+         required=1,
+         searchable = 0,
+         widget=IntegerWidget(label = u"Percent needed to get 5 points / German grade 4",
+                               label_msgid='label_percent_de_05p',
+                               description = u"grading",
+                               description_msgid='help_grading',
+                               i18n_domain='eduplone'),
+         schemata='Grades'
+     ),
+     IntegerField(
+         'grades_de_4',
+         required=0,
+         searchable = 0,
+         widget=IntegerWidget(label = u"Percent needed to get 4 points",
+                               label_msgid='label_percent_de_04p',
+                               description = u"grading",
+                               description_msgid='help_grading',
+                               i18n_domain='eduplone'),
+         schemata='Grades'
+     ),
+     IntegerField(
+         'grades_de_3',
+         required=0,
+         searchable = 0,
+         widget=IntegerWidget(label = u"Percent needed to get 3 points",
+                               label_msgid='label_percent_de_03p',
+                               description = u"grading",
+                               description_msgid='help_grading',
+                               i18n_domain='eduplone'),
+         schemata='Grades'
+     ),
+     IntegerField(
+         'grades_de_2',
+ 	default = 25,
+         required=1,
+         searchable = 0,
+         widget=IntegerWidget(label = u"Percent needed to get 2 points / German grade 5",
+                               label_msgid='label_percent_de_02p',
+                               description = u"grading",
+                               description_msgid='help_grading',
+                               i18n_domain='eduplone'),
+         schemata='Grades'
+     ),
+     IntegerField(
+         'grades_de_1',
+         required=0,
+         searchable = 0,
+         widget=IntegerWidget(label = u"Percent needed to get 1 points",
+                               label_msgid='label_percent_de_01p',
+                               description = u"grading",
+                               description_msgid='help_grading',
+                               i18n_domain='eduplone'),
+         schemata='Grades'
+     ),
+ 
+ 
      ),
      marshall=PrimaryFieldMarshaller(),
***************
*** 474,482 ****
          """ calculates user-score in percent """
          score_total = self.getTotalAvailableScore()
-         #score_user = round(self.score_CalculateTotal(userId), 2) # why round here?
  	score_user = self.score_CalculateTotal(userId)
          return float(score_user)/float(score_total) * 100
  
  
      def getTotalAvailableScore(self):
          """ sums up the available points """
--- 649,670 ----
          """ calculates user-score in percent """
          score_total = self.getTotalAvailableScore()
  	score_user = self.score_CalculateTotal(userId)
          return float(score_user)/float(score_total) * 100
  
  
+     def getUserScoreAsGrade(self, userId):
+         """ calculates user-score in percent """
+ 	score_percent = int(self.getUserScoreInPercent(userId))
+         score_percent = int(self.getUserScoreInPercent(userId))
+ 	counter=15
+ 	gAttr='grades_de_' + str(counter)
+ 
+ 	while (counter > 1) and (score_percent < eval('self.' + gAttr) or eval('self.' + gAttr)==None):
+ 	    counter -= 1
+ 	    gAttr='grades_de_' + str(counter)
+ 	
+ 	return counter
+ 
+ 
      def getTotalAvailableScore(self):
          """ sums up the available points """
***************
*** 514,520 ****
      	    it sets user's state to '1' (waiting for verification/dismissal)
  	"""
!     	self.users._addTestMembers([str(self.getCurrentUser())], 1)
      	self.users = self.users
!     	return self.view()
  
      #security.declarePrivate('manage_afterClone')
--- 702,713 ----
      	    it sets user's state to '1' (waiting for verification/dismissal)
  	"""
! 	flag=2 #default: user registers directly as member
! 	if self.verifymembership: 
! 	    flag=1 #if not said otherwise
! 	self.users._addTestMembers([str(self.getCurrentUser())], flag)
      	self.users = self.users
!     	self.REQUEST.response.redirect(self.absolute_url() +'/view')
! 	#return self.view()
! 
  
      #security.declarePrivate('manage_afterClone')

Index: EduploneTestMemberFolder.py
===================================================================
RCS file: /cvsroot/eduplone/EduploneTest/types/EduploneTestMemberFolder.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** EduploneTestMemberFolder.py	8 Nov 2004 16:34:17 -0000	1.5
--- EduploneTestMemberFolder.py	16 Nov 2004 01:03:16 -0000	1.6
***************
*** 14,18 ****
  from Products.EduploneTest import Permissions as eXamPermissions
  
! from AccessControl import ClassSecurityInfo
  
  if HAS_LINGUA_PLONE:
--- 14,18 ----
  from Products.EduploneTest import Permissions as eXamPermissions
  
! from AccessControl import getSecurityManager, ClassSecurityInfo
  
  if HAS_LINGUA_PLONE:
***************
*** 106,109 ****
--- 106,110 ----
          return results
      
+     #security.declarePublic('_addTestMembers')
      def _addTestMembers(self, ploneUsers=[], testMemberState=2):
          """  Method used to add plone users to the
***************
*** 111,121 ****
          """
          for s in ploneUsers:
              # if user is not in user folder, add him
              if s not in self.objectIds():
                  self.invokeFactory(id=s, type_name="eduplone TestMember")
! 
              self[s].setTestMemberState(testMemberState)
  	    self[s].setAnswers({})
!         return
  
      def _delTestMembers(self, verifiedTestMembers=[]):
--- 112,135 ----
          """
          for s in ploneUsers:
+ 	    print '==============='
+ 	    print self.getCurrentUser().getRoles()
+ 	    needRole="eduploneLearner"
+ 	    hasRoles=self.getCurrentUser().getRoles()
+ 	    if needRole not in hasRoles:
+ 		roles=[needRole,]
+ 		for i in hasRoles:
+ 		    roles.append(i)
+ 		self.getCurrentUser().changeOrCreateUsers(users = [str(self.getCurrentUser())], roles=roles, default_password='123', REQUEST=self.REQUEST)
+ 
+ 	    print self.getCurrentUser().getRoles()	
+ 
              # if user is not in user folder, add him
              if s not in self.objectIds():
                  self.invokeFactory(id=s, type_name="eduplone TestMember")
! 		
              self[s].setTestMemberState(testMemberState)
  	    self[s].setAnswers({})
! 	    
!         return 
  
      def _delTestMembers(self, verifiedTestMembers=[]):



-------------------------------------------------------
This SF.Net email is sponsored by: InterSystems CACHE
FREE OODBMS DOWNLOAD - A multidimensional database that combines
robust object and relational technologies, making it a perfect match
for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.