Create and return a new user

        :param projects: the projects for the user
        :type projects: list of :class:`jukeboxcore.djadapter.models.Project`
        :param tasks: the tasks for the user
        :type tasks: list of :class:`jukeboxcore.djadapter.models.Task`
        :returns: The created user or None
        :rtype: None | :class:`jukeboxcore.djadapter.models.User`
        :raises: None

def create_user(self, projects=None, tasks=None):
        """Create and return a new user

        :param projects: the projects for the user
        :type projects: list of :class:`jukeboxcore.djadapter.models.Project`
        :param tasks: the tasks for the user
        :type tasks: list of :class:`jukeboxcore.djadapter.models.Task`
        :returns: The created user or None
        :rtype: None | :class:`jukeboxcore.djadapter.models.User`
        :raises: None
        """
        projects = projects or []
        tasks = tasks or []
        dialog = UserCreatorDialog(projects=projects, tasks=tasks, parent=self)
        dialog.exec_()
        user = dialog.user
        if user:
            userdata = djitemdata.UserItemData(user)
            treemodel.TreeItem(userdata, self.users_model.root)
        return user