<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def submit_group_completion(self, block_key, completion, users=None, user_ids=None):
 """ Submit a completion for a group of users. Arguments: block_key (opaque_key.edx.keys.UsageKey):
 The block to submit completions for. completion (float):
 A value in the range [0.0, 1.0] users ([django.contrib.auth.models.User]):
 An optional iterable of Users that completed the block. user_ids ([int]):
 An optional iterable of ids of Users that completed the block. Returns a list of (BlockCompletion, bool) where the boolean indicates whether the given BlockCompletion was newly created. """

        if users is None:
            users = []
        if user_ids is None:
            user_ids = []
        more_users = User.objects.filter(id__in=user_ids)
        if len(more_users) < len(user_ids):
            found_ids = {u.id for u in more_users}
            not_found_ids = [pk for pk in user_ids if pk not in found_ids]
            raise User.DoesNotExist("User not found with id(s): {}".format(not_found_ids))
        users.extend(more_users)

        submitted = []
        for user in users:
            submitted.append(BlockCompletion.objects.submit_completion(
                user=user,
                course_key=self._course_key,
                block_key=block_key,
                completion=completion
            ))
        return submitted