def widget(self):
     """
     Place initial load container for controller to fill.
     """
     # prepare classes for widget wrapper
     wclasses = self.get_classes(self.linktable, self.restricted, self.restrictor, self.lister, self.sortable)
     uvars = self.uvars
     uvars.update({self.fieldset[1]: self.value})
     # create SPAN to wrap widget
     wrapper = SPAN(_id=self.wrappername, _class=wclasses)
     wrapper.append(
         LOAD("plugin_ajaxselect", "set_widget.load", args=self.uargs, vars=uvars, target=self.wrappername)
     )
     return wrapper
 def widget(self):
     """
     Place initial load container for controller to fill.
     """
     # prepare classes for widget wrapper
     wclasses = self.get_classes(self.linktable, self.restricted,
                                 self.restrictor, self.lister,
                                 self.sortable)
     uvars = self.uvars
     uvars.update({self.fieldset[1]: self.value})
     # create SPAN to wrap widget
     wrapper = SPAN(_id=self.wrappername, _class=wclasses)
     wrapper.append(
         LOAD('plugin_ajaxselect',
              'set_widget.load',
              args=self.uargs,
              vars=uvars,
              target=self.wrappername))
     return wrapper
def problem_widget(name,
                   link,
                   link_class,
                   link_title,
                   disable_todo=False,
                   anchor=True):
    """
        Widget to display a problem in UI tables

        @param name (String): Problem name
        @param link (String): Problem link
        @param link_class (String): HTML class to determine solved/unsolved
        @param link_title (String): Link title corresponding to link_class
        @param disable_todo (Boolean): Show / Hide todo button

        @return (DIV)
    """

    problem_div = SPAN()
    if anchor:
        problem_div.append(
            A(name,
              _href=URL("problems",
                        "index",
                        vars={
                            "pname": name,
                            "plink": link
                        },
                        extension=False),
              _class="problem-listing " + link_class,
              _title=link_title,
              _target="_blank",
              extension=False))
    else:
        problem_div.append(SPAN(name, _class=link_class, _title=link_title))

    if current.auth.is_logged_in() and disable_todo is False:
        problem_div.append(
            I(_class="add-to-todo-list fa fa-check-square-o tooltipped",
              _style="padding-left: 10px; display: none; cursor: pointer;",
              data={
                  "position": "right",
                  "delay": "10",
                  "tooltip": "Add problem to Todo List"
              }))

    return problem_div