Module:Sandbox/Mr. Stradivarius/sandbox3: Difference between revisions

Content deleted Content added
add dupe-checking method
tweaks to dupe function (quick save)
Line 455:
checkSelfAssessmentScale( self, 'getGrades' )
return self.grades or {}
end
 
function assessmentScale:editGrade()
end
 
-- Checks for duplicate triggers for the grade objects added to the assessment scale.
-- If any are found, displays an error.
function assessmentScale:checkForDuplicateTriggers()
checkSelfAssessmentScale( self, 'checkForDuplicateTriggers' )
local grades = self:getGrades()
if type( grades ) ~= 'table' then return end
Line 464 ⟶ 469:
for name, gradeObj in pairs( grades ) do
gradeObj = checkObject( gradeObj )
if gradeObj and type( gradeObj.triggers ) == 'table' then
forlocal i,triggers trigger= in ipairstype( gradeObj.triggersgetTriggers ) do== 'function' and gradeObj:getTriggers()
if type( triggers trigger) == checkString('table' trigger )then
iffor i, trigger thenin ipairs( triggers ) do
iftrigger exists[= triggercheckString( ]trigger then)
error( mw.ustring.format( 'Duplicateif trigger value "%s" detected in the assessment scale object', trigger ) )then
else if exists[ trigger ] then
exists[ error( mw.ustring.format( 'Duplicate trigger ]value "%s" detected in the assessment scale object', trigger =) true)
else
exists[ trigger ] = true
end
end
end
Line 715 ⟶ 723:
local myqs = qualityScale:new()
myqs:setStandardQualityScale()
local fooGrade = qualityGrade:new()
fooGrade:addTrigger( 'fa' )
myqs:addGrade( fooGrade )
myqs:checkForDuplicateTriggers()
return myqs.grades.a.icon
end