<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_full_name_or_username(self):
 """ Returns the full name of the user, or if none is supplied will return the username. Also looks at ``ACCOUNTS_WITHOUT_USERNAMES`` settings to define if it should return the username or email address when the full name is not supplied. :return: ``String`` containing the full name of the user. If no name is supplied it will return the username or email address depending on the ``ACCOUNTS_WITHOUT_USERNAMES`` setting. """

        if self.first_name or self.last_name:
            # We will return this as translated string. Maybe there are some
            # countries that first display the last name.
            name = _(u"%(first_name)s %(last_name)s") % \
                {'first_name': self.first_name,
                 'last_name': self.last_name}
        else:
            # Fallback to the username if usernames are used
            if not defaults.ACCOUNTS_WITHOUT_USERNAMES:
                name = "%(username)s" % {'username': self.username}
            else:
                name = "%(email)s" % {'email': self.email}
        return name.strip()