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