]> git.ipfire.org Git - ipfire.org.git/commitdiff
dbl: Create a module for the box to encourage reports
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 24 Jan 2026 15:39:58 +0000 (15:39 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 24 Jan 2026 15:39:58 +0000 (15:39 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
Makefile.am
src/templates/dbl/lists/domain.html
src/templates/dbl/modules/submit-report.html [new file with mode: 0644]
src/web/__init__.py
src/web/dbl.py

index 88a42447ad614052db3f10e33b5d136c4eaa8c26..0760ef6045dbc65b7e3850948ede5e4f3815e686 100644 (file)
@@ -207,7 +207,8 @@ templates_dbl_lists_DATA = \
 templates_dbl_listsdir = $(templates_dbldir)/lists
 
 templates_dbl_modules_DATA = \
-       src/templates/dbl/modules/lists.html
+       src/templates/dbl/modules/lists.html \
+       src/templates/dbl/modules/submit-report.html
 
 templates_dbl_modulesdir = $(templates_dbldir)/modules
 
index eb27134371ca7be5a6d270f2828ae55f494948eb..6bff7c8df81be1d87e04c84390855da859ea1ee4 100644 (file)
 
        <section class="section">
                <div class="container">
-                       <div class="notification">
-                               {% set blocked = False %}
-
-                               {# Is this domain blocked? #}
-                               {% for event in events %}
-                                       {% if event.blocks %}
-                                               {% set blocked = True %}
-                                       {% end %}
-                                       {% break %}
-                               {% end %}
-
-                               <div class="columns is-vcentered">
-                                       <div class="column">
-                                               {% if blocked %}
-                                                       <strong>
-                                                               {{ _("Do you think this domain should not be blocked?") }}
-                                                       </strong>
-                                               {% else %}
-                                                       <strong>
-                                                               {{ _("Do you think this domain should be blocked?") }}
-                                                       </strong>
-                                               {% end %}
+                       {% set blocked = False %}
 
-                                               {{ _("Send a report and help us to improve IPFire DBL.") }}
-                                       </div>
+                       {# Is this domain blocked? #}
+                       {% for event in events %}
+                               {% if event.blocks %}
+                                       {% set blocked = True %}
+                               {% end %}
+                               {% break %}
+                       {% end %}
 
-                                       <div class="column is-narrow">
-                                               <a class="button is-primary is-small" href="/dbl/report?list={{ list.slug }}&amp;name={{ name }}">
-                                                       {{ _("Report %s") % name }}
-                                               </a>
-                                       </div>
-                               </div>
-                       </div>
+                       {% module DBLSubmitReport(name, list=list, blocked=blocked) %}
                </div>
        </section>
 
diff --git a/src/templates/dbl/modules/submit-report.html b/src/templates/dbl/modules/submit-report.html
new file mode 100644 (file)
index 0000000..0bffdc1
--- /dev/null
@@ -0,0 +1,25 @@
+{% import urllib.parse %}
+
+<div class="notification">
+       <div class="columns is-vcentered">
+               <div class="column">
+                       {% if blocked %}
+                               <strong>
+                                       {{ _("Do you think this domain should not be blocked?") }}
+                               </strong>
+                       {% else %}
+                               <strong>
+                                       {{ _("Do you think this domain should be blocked?") }}
+                               </strong>
+                       {% end %}
+
+                       {{ _("Send a report and help us to improve IPFire DBL.") }}
+               </div>
+
+               <div class="column is-narrow">
+                       <a class="button is-primary is-small" href="/dbl/report?{{ urllib.parse.urlencode(args) }}">
+                               {{ _("Report %s") % name }}
+                       </a>
+               </div>
+       </div>
+</div>
index d41bb98a7623d3c07802a759263783f3da571525..d856235a4bd3ec7e83b2ab210cebf8f163da9b6e 100644 (file)
@@ -86,6 +86,7 @@ class Application(tornado.web.Application):
 
                                # DBL
                                "DBLLists"             : dbl.ListsModule,
+                               "DBLSubmitReport"      : dbl.SubmitReportModule,
 
                                # Docs
                                "DocsDiff"             : docs.DiffModule,
index 15ee0cac27098526ee5081ef371830d69ed8486e..7c8972546d5a342006d65e3afc52c055bc2fdf4e 100644 (file)
@@ -165,3 +165,19 @@ class SearchHandler(base.AnalyticsMixin, BaseHandler):
 class ListsModule(ui_modules.UIModule):
        def render(self, lists):
                return self.render_string("dbl/modules/lists.html", lists=lists)
+
+
+class SubmitReportModule(ui_modules.UIModule):
+       def render(self, name, blocked=False, list=None):
+               args = {
+                       "name"  : name,
+                       "block" : not blocked,
+               }
+
+               if list:
+                       args |= {
+                               "list" : list.slug,
+                       }
+
+               return self.render_string("dbl/modules/submit-report.html",
+                       name=name, blocked=blocked, args=args)