Module:Sanctions: Difference between revisions

Content deleted Content added
Undid revision 1041325915 by FlightTime (talk)
Close added "p" tags
 
(15 intermediate revisions by 9 users not shown)
Line 54:
 
function Topic:exists()
return ((self._topicData ~= nil) and (self._topicData ~= false))
end
 
Line 129:
-- @returns String representation of notice
local function buildTalkNotice(frame, topic, args)
local type = args['type'] or args[2] or 'standardmini'
local out = mw.html.create('')
local hasRestrictions = topic:hasAnyRestrictions()
Line 141:
:css('font-size', '120%')
:wikitext("'''WARNING: ACTIVE COMMUNITY SANCTIONS'''")
:done()
end
 
if hasRestrictions then
out
:tag('p')
:wikitext("The article [[:{{SUBJECTPAGENAME}}]], along with other pages relating to "..topic:get('scope')..", is currentlydesignated subjectby tothe community as a '''[[WPWikipedia:AC/DSContentious topics|discretionarycontentious sanctionstopic]]''' [[".. topic:get('wikilink') .."|authorised]] by the community. The current restrictions are:")
else
out
:tag('p')
:wikitext("<strong>The use of the [[WPWikipedia:AC/DSContentious topics|discretionarycontentious sanctionstopics procedure]] has been [[".. topic:get('wikilink') .."|authorised]] by the community for pages related to ".. topic:get('scope') ..", including this page.</strong>" .. (type == 'mini' and ' PleaseEditors consultwho repeatedly or seriously fail to adhere to the [[Wikipedia:Arbitration_Committee/Discretionary_sanctions#AwarenessFive_pillars|awarenesspurpose criteriaof Wikipedia]], andany expected [[Wikipedia:Etiquette|standards of behaviour]], or any [[Wikipedia:List_of_policies|normal editorial process]] may editbe carefullysanctioned.' or ''))
end
 
Line 160 ⟶ 157:
restrictionList
:tag('li')
:wikitext("'''Limit of one revert in 24 hours:''' This article is under [[Wikipedia:Edit warring#Other revert rules|WP:1RR]] (one [[Wikipedia:Reverting|revert]] per editor per article ''per 24-hour period'') [[Category:Wikipedia pages subject to a one-revert restriction]]")
end
 
Line 167 ⟶ 164:
restrictionList
:tag('li')
:wikitext("'''Consensus required:''' All editors must obtain [[WP:Consensus|consensus]] on the talk page of this article before reinstating ''any edits that have been challenged (via reversion).'' This includes making edits similar to the ones that have been challenged. If in doubt, do not make the edit. [[Category:Wikipedia pages subject to a consensus required restriction]]")
end
 
Line 173 ⟶ 170:
restrictionList
:tag('li')
:wikitext("'''24-hr [[Wikipedia:BOLD, revert, discuss cycle|BRD cycle]]:''' If a change you make to this article is reverted, you may not reinstate that change unless you discuss the issue on the talk page and wait 24 hours (from the time of the original edit). Partial reverts/reinstatements that reasonably address objections of other editors [[Wikipedia:BOLD, revert, discuss cycle#WP:BRR|are preferable]] to wholesale reverts. [[Category:Wikipedia pages subject to an enforced BRD restriction]]")
end
Line 189 ⟶ 186:
out
:tag('p')
:wikitext("Provided the [[Wikipedia:Arbitration_Committee/Discretionary_sanctions#Awareness|awareness criteria]] are met, discretionary sanctions may be used against editorsEditors who repeatedly or seriously fail to adhere to the [[Wikipedia:Five_pillars|purpose of Wikipedia]], any expected [[Wikipedia:Etiquette|standards of behaviour]], or any [[Wikipedia:List_of_policies|normal editorial process]] may be sanctioned.")
-- Further info box
Line 202 ⟶ 199:
 
local enforcementProcedures = mw.html.create('ul')
 
if hasRestrictions then
enforcementProcedures
:tag('li')
:wikitext("Violations of any restrictions " .. (hasRevertRestrictions and "(excluding 1RR/reverting violations) " or "") .. "and other conduct issues should be reported to the [[Wikipedia:Administrators' noticeboard/Incidents|administrators' incidents noticeboard]]." .. (hasRevertRestrictions and " Violations of revert restrictions should be reported to the [[WP:ANEW|administrators' edit warring noticeboard]]." or ""))
:done()
:tag('li')
:wikitext("Editors who violate any listed restrictions may be blocked by any uninvolved administrator, even on a first offense.")
:done()
else
enforcementProcedures
:tag('li')
:wikitext("Problems should be reported to the [[Wikipedia:Administrators' noticeboard/Incidents|administrators' incidents noticeboard]].")
:done()
end
 
enforcementProcedures
:tag('li')
:wikitext("Violations of any restrictions " .. (hasRevertRestrictions and "(excluding 1RR/reverting violations) " or "") .. "and other conduct issues should be reported to the [[Wikipedia:Administrators' noticeboard/Incidents|administrators' incidents noticeboard]]." .. (hasRevertRestrictions and " Violations of revert restrictions should be reported to the [[WPWikipedia:ANEWAdministrators' noticeboard/Edit warring|administrators' edit warring noticeboard]]." or ""))
:wikitext("An editor must be [[Wikipedia:Arbitration_Committee/Discretionary_sanctions#Awareness|aware]] before they can be sanctioned.")
:done()
:tag('li')
:wikitext("Editors who violate any listed restrictions may be blocked by any uninvolved administrator, even on a first offense.")
:done()
:tag('li')
:wikitext("An editor must be [[Wikipedia:Arbitration_Committee/Discretionary_sanctionsContentious topics#Awareness of contentious topics|aware]] before they can be sanctioned.")
:allDone()
furtherInfo:node(enforcementProcedures)
Line 260 ⟶ 248:
 
local box = messageBox.main( 'tmbox', {
type = 'noticecontent',
image = type == 'long' and '[[File:Commons-emblem-issue.svg|50px]]' or '[[ImageFile:Commons-emblem-hand-orange.svg|40px]]',
text = frame:preprocess(tostring(out))
})
Line 274 ⟶ 262:
-- @returns String representation of notice
local function buildAlert(frame, topic, sig)
local hasRestrictions = topic:hasAnyRestrictions()
local restrictionIntro
local restrictionList
if hasRestrictions then
restrictionIntro = mw.html.create('p')
restrictionIntro:wikitext("Additionally, the following restriction(s) apply to this topic area:")
restrictionList = mw.html.create('ul')
if topic:hasRestriction('1rr') then
restrictionList
:tag('li')
:wikitext("All articles in this topic area are under [[Wikipedia:Edit warring#Other revert rules|WP:1RR]] (a limit of one [[Wikipedia:Reverting|revert]] per editor per article per 24-hour period). When in doubt, assume an edit is related and so is a revert. Clear vandalism of whatever origin may be reverted without restriction. Reverts of edits made by anonymous IP editors that are not vandalism are exempt from 1RR but are subject to the usual rules on edit warring. Editors who otherwise violate this 1RR restriction may be blocked without warning by any uninvolved administrator, even on a first offence.")
end
local customRestrictions = topic:getCustomRestrictions()
for _, v in ipairs(customRestrictions) do
restrictionList
:tag('li')
:newlinewikitext(v)
end
end
local out = mw.html.create('table')
:addClass('messageboxgs-alert')
:cssText("border: 1px solid #AAA; background-color: #E5F8FF; padding: 0.5em; width: 100%; margin-bottom: 1em")
 
out
Line 285 ⟶ 297:
:done()
:tag('td')
:tag('p')
:wikitext("This is a standard message to notify contributors about an administrative ruling in effect. ''It does '''not''' imply that there are any issues with your contributions to date.''")
:newline()
:done()
:wikitext("You have shown interest in ".. topic:get('scope') ..". Due to past disruption in this topic area, the community has enacted a more stringent set of rules. Any administrator may impose [[Wikipedia:General sanctions|sanctions]]—such as [[Wikipedia:Editing restrictions#Types of restrictions|editing restrictions]], [[Wikipedia:Banning policy#Types of bans|bans]], or [[WP:Blocking policy|blocks]]—on editors who do not strictly follow [[Wikipedia:List of policies|Wikipedia's policies]], or the [[Wikipedia:Arbitration_Committee/Discretionary_sanctions#Page_restrictions|page-specific restrictions]], when making edits related to the topic.")
:newlinetag('p')
:wikitext("You have shown interest in ".. topic:get('scope') ..". Due to past disruption in this topic area, the community has enactedauthorised auninvolved moreadministrators stringent set of rules. Any administrator mayto impose [[Wikipedia:GeneralContentious sanctionstopics|sanctionscontentious topics restrictions]]—such as [[Wikipedia:Editing restrictions#Types of restrictions|editing restrictions]], [[Wikipedia:Banning policy#Types of bans|bans]], or [[WP:Blocking policy|blocks]]—on editors who do not strictly follow [[Wikipedia:List of policies|Wikipedia's policies]], expected [[Wikipedia:Etiquette|standards of behaviour]], or the [[Wikipedia:Arbitration_Committee/Discretionary_sanctionsContentious topics#Page_restrictionsStandard set|page-specific restrictions]], when making edits related to the topic.")
:wikitext("For additional information, please see the [[".. topic:get('wikilink') .."|guidance on these sanctions]]. If you have any questions, or any doubts regarding what edits are appropriate, you are welcome to discuss them with me or any other editor." .. (sig and ' '..sig or ''))
:done()
:node(restrictionIntro)
:node(restrictionList)
:tag('p')
:wikitext("For additional information, please see the [[".. topic:get('wikilink') .."|guidance on these sanctions]]. If you have any questions, or any doubts regarding what edits are appropriate, you are welcome to discuss them with me or any other editor." .. (sig and ' '..sig or ''))
:done()
 
return frame:preprocess(tostring(out))
Line 298 ⟶ 316:
local enHeader = mw.html.create('')
local restrictionMsgs = {}
local expiry = args['expiry'] or 'indefinite'
local redirect = args['redirect'] or ''
if topic:hasRestriction('1rr') then
table.insert(restrictionMsgs, "Editors must not make more than one [[Help:Reverting|revert]] per twenty-four (24) hours (subject to [[WPWikipedia:3RRNOEdit warring#Exemptions|exceptions]])")
end
if topic:hasRestriction('consensusrequired') then
table.insert(restrictionMsgs, "Editors must not reinstate any challenged edits (via reversion) without first obtaining [[WPWikipedia:CONSENSUSConsensus|consensus]] on the talk page of this article")
end
 
Line 328 ⟶ 348:
enText
:tag('p')
:wikitext("<strong>Breaching the restriction on this page may result in a block or other sanctions.</strong> In addition, please note that because this topic area has been disrupted in the past, the community has [["..topic:get('wikilink').."|authorised]] administrators to take [[WPWikipedia:ACDSContentious topics|appropriate steps]] to ensure the smooth running of all pages related to "..topic:get('scope')..". Conduct which does not adhere to our policies and [[Wikipedia:Etiquette|standards of behaviour]] may be met with sanctions. Please edit carefully.")
:done()
 
local editnotice = frame:expandTemplate{ title = 'editnotice', args = {
expiry = "indefinite"tostring(expiry),
headerstyle = "font-size: 120%;",
style = "background: ivory;",
image = "Commons-emblem-issue.svg",
imagesize = "50px",
redirect = tostring(redirect),
header = tostring(enHeader),
text = tostring(enText)
Line 382 ⟶ 403:
return frame:preprocess(syntaxHelp())
elseif not topic:hasRestriction('ds') then
return frame:preprocess('<span class="error">DiscretionaryThis sanctionstopic arearea is not authoriseddesignated foras thisa topiccontentious areatopic. Alert is not required.</span>')
end
Line 420 ⟶ 441:
:css('font-size', '9pt')
:css('background', 'transparent')
:css('color', 'inherit')
 
-- Headers
Line 472 ⟶ 494:
else
return "" -- ?
end
end
 
-- Returns true if the given topic name is a valid topic area
function p.checkIfValidTopic(topicName)
local topic = Topic.new(topicName, nil)
if topic:exists() then
return true
else
return false
end
end