<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_fieldsets(self, request, obj=None):
 """ Customize the fieldsets according to the app settings :param request: request :param obj: post :return: fieldsets configuration """

        app_config_default = self._app_config_select(request, obj)
        if app_config_default is None and request.method == 'GET':
            return super(PostAdmin, self).get_fieldsets(request, obj)
        if not obj:
            config = app_config_default
        else:
            config = obj.app_config

        fsets = deepcopy(self._fieldsets)
        if config:
            abstract = bool(config.use_abstract)
            placeholder = bool(config.use_placeholder)
            related = bool(config.use_related)
        else:
            abstract = get_setting('USE_ABSTRACT')
            placeholder = get_setting('USE_PLACEHOLDER')
            related = get_setting('USE_RELATED')
        if abstract:
            fsets[0][1]['fields'].append('abstract')
        if not placeholder:
            fsets[0][1]['fields'].append('post_text')
        if get_setting('MULTISITE') and not self.has_restricted_sites(request):
            fsets[1][1]['fields'][0].append('sites')
        if request.user.is_superuser:
            fsets[1][1]['fields'][0].append('author')
        if apps.is_installed('djangocms_blog.liveblog'):
            fsets[2][1]['fields'][2].append('enable_liveblog')
        filter_function = get_setting('ADMIN_POST_FIELDSET_FILTER')
        if related and Post.objects.namespace(config.namespace).active_translations().exists():
            fsets[1][1]['fields'][0].append('related')
        if callable(filter_function):
            fsets = filter_function(fsets, request, obj=obj)
        return fsets