diff --git a/resources/assets/stylesheets/scss/courseware.scss b/resources/assets/stylesheets/scss/courseware.scss
index ab114ad409708356faf7c0468a2b7f74313dfee2..412b5c3c0e5e9e6ed5114f17e6076971643bece1 100644
--- a/resources/assets/stylesheets/scss/courseware.scss
+++ b/resources/assets/stylesheets/scss/courseware.scss
@@ -2322,6 +2322,11 @@ d a s h b o a r d
         display: unset;
         max-width: unset;
         flex-wrap: unset;
+
+        .cw-dashboard-tasks-wrapper,
+        .cw-dashboard-students-wrapper {
+            max-height: unset;
+        }
     }
     &.cw-dashboard-activity-view {
         .cw-dashboard-activities {
diff --git a/resources/vue/components/courseware/CoursewareDashboardStudents.vue b/resources/vue/components/courseware/CoursewareDashboardStudents.vue
index 6498b432f278a6fa410439f3cc04a7461389691b..189ab1f4738fd24446ab9f0013c424fcbd28556e 100644
--- a/resources/vue/components/courseware/CoursewareDashboardStudents.vue
+++ b/resources/vue/components/courseware/CoursewareDashboardStudents.vue
@@ -46,7 +46,7 @@
                         </a>
                         <span v-else>{{ element.attributes.title }}</span>
                     </td>
-                    <td>{{ task.attributes.progress }}%</td>
+                    <td>{{ task.attributes.progress.toFixed(2) }}%</td>
                     <td>{{ getReadableDate(task.attributes['submission-date']) }}</td>
                     <td>
                         <studip-icon v-if="task.attributes.submitted" shape="accept" role="status-green" />
diff --git a/resources/vue/components/courseware/CoursewareDashboardTasks.vue b/resources/vue/components/courseware/CoursewareDashboardTasks.vue
index b8b9730b9262cef0c048564e4d82aeddf4d43404..501fc47a56e58bf1a78f245daf5860d90f6fc39e 100644
--- a/resources/vue/components/courseware/CoursewareDashboardTasks.vue
+++ b/resources/vue/components/courseware/CoursewareDashboardTasks.vue
@@ -39,7 +39,7 @@
                     <td>
                         <a :href="getLinkToElement(element.id)">{{ element.attributes.title }}</a>
                     </td>
-                    <td>{{ task.attributes.progress }}%</td>
+                    <td>{{ task.attributes.progress.toFixed(2) }}%</td>
                     <td>{{ getReadableDate(task.attributes['submission-date']) }}</td>
                     <td>
                         <studip-icon v-if="task.attributes.submitted" shape="accept" role="status-green" />
diff --git a/resources/vue/components/courseware/CoursewareManagerTaskDistributor.vue b/resources/vue/components/courseware/CoursewareManagerTaskDistributor.vue
index 839bd7b3c637c6c3df2f3fd010d54bd0b2670293..7189fa3c797d94677752c2aaf78656ba05ccef9c 100644
--- a/resources/vue/components/courseware/CoursewareManagerTaskDistributor.vue
+++ b/resources/vue/components/courseware/CoursewareManagerTaskDistributor.vue
@@ -30,7 +30,7 @@
                     </select>
                 </label>
                 <label>
-                    <translate>Type</translate>
+                    <translate>Typ</translate>
                     <select v-model="taskSolverType">
                         <option value="autor"><translate>für Studierende</translate></option>
                         <option value="group"><translate>für Gruppen</translate></option>
@@ -38,7 +38,7 @@
                 </label>
             </fieldset>
             <fieldset v-show="taskSolverType === 'autor'" class="cw-manager-task-distributor-task-solvers">
-                <legend><translate>Studierende</translate></legend>
+                <legend><translate>Aufgabe Studierenden zuweisen</translate></legend>
                 <courseware-companion-box
                     v-show="autor_members.length === 0"
                     :msgCompanion="$gettext('Es wurden keine Studierenden in dieser Veranstaltung gefunden.')"
@@ -47,20 +47,20 @@
                 <table v-show="autor_members.length > 0" class="default">
                     <thead>
                         <tr>
+                            <th><input type="checkbox" v-model="bulkSelectAutors"/></th>
                             <th><translate>Name</translate></th>
-                            <th><translate>Aufgabe zuweisen</translate></th>
                         </tr>
                     </thead>
                     <tbody>
                         <tr v-for="user in autor_members" :key="user.user_id">
-                            <td>{{ user.formattedname }}</td>
                             <td><input type="checkbox" v-model="selectedAutors" :value="user.user_id" /></td>
+                            <td>{{ user.formattedname }}</td>
                         </tr>
                     </tbody>
                 </table>
             </fieldset>
             <fieldset v-show="taskSolverType === 'group'" class="cw-manager-task-distributor-task-solvers">
-                <legend><translate>Gruppen</translate></legend>
+                <legend><translate>Aufgabe Gruppen zuweisen</translate></legend>
                 <courseware-companion-box
                     v-show="groups.length === 0"
                     :msgCompanion="$gettext('Es wurden keine Gruppen in dieser Veranstaltung gefunden.')"
@@ -69,14 +69,14 @@
                 <table v-show="groups.length > 0" class="default">
                     <thead>
                         <tr>
+                            <th><input type="checkbox" v-model="bulkSelectGroups"/></th>
                             <th><translate>Gruppenname</translate></th>
-                            <th><translate>Aufgabe zuweisen</translate></th>
                         </tr>
                     </thead>
                     <tbody>
                         <tr v-for="group in groups" :key="group.id">
-                            <td>{{ group.name }}</td>
                             <td><input type="checkbox" v-model="selectedGroups" :value="group.id" /></td>
+                            <td>{{ group.name }}</td>
                         </tr>
                     </tbody>
                 </table>
@@ -85,6 +85,14 @@
                 <button class="button" name="create_task" :disabled="!targetSelected" @click="createTask">
                     <translate>Aufgabe verteilen</translate>
                 </button>
+                <span 
+                    v-if="!targetSelected"
+                    class="tooltip tooltip-icon "
+                    :data-tooltip="$gettext('Bitte wählen aus, an welcher Stelle die Aufgabe eingefügt werden soll.')"
+                    tabindex="0"
+                    title=""
+                >
+                </span>
             </footer>
         </form>
     </div>
@@ -106,7 +114,9 @@ export default {
             taskSolverType: 'autor',
             selectedElementId: '',
             selectedAutors: [],
+            bulkSelectAutors: false,
             selectedGroups: [],
+            bulkSelectGroups: false,
             taskTitle: '',
             submissionDate: '',
             solverMayAddBlocks: true,
@@ -301,16 +311,45 @@ export default {
 
             await this.createTaskGroup({ taskGroup });
 
+            this.resetTask();
+
             this.companionSuccess({
-                info: this.$gettext('Aufgaben wurden verteilt.'),
+                info: this.$gettext('Aufgabe wurde verteilt.'),
             });
         },
+        resetTask() {
+            this.taskTitle = '';
+            this.taskSolverType = 'autor';
+            this.selectedElementId = '';
+            this.submissionDate = '';
+            this.solverMayAddBlocks = true;
+            this.bulkSelectAutors = false;
+            this.selectedAutors = [];
+            this.bulkSelectGroups = false;
+            this.selectedGroups = [];
+        }
     },
     mounted() {
         const parent = { type: 'courses', id: this.context.id };
-        this.loadCourseMemberships({ parent, relationship: 'memberships', options: { include: 'user' } });
+        this.loadCourseMemberships({ parent, relationship: 'memberships', options: { include: 'user', 'page[offset]': 0, 'page[limit]': 10000, 'filter[permission]': 'autor' } });
         this.loadCourseStatusGroups({ parent, relationship: 'status-groups' });
         this.loadOwnCourseware();
     },
+    watch: {
+        bulkSelectAutors(newState) {
+            if (newState) {
+                this.selectedAutors = this.autor_members.map( autor => autor.user_id);
+            } else {
+                this.selectedAutors = [];
+            }
+        },
+        bulkSelectGroups(newState) {
+            if (newState) {
+                this.selectedGroups = this.groups.map( group => group.id);
+            } else {
+                this.selectedGroups = [];
+            }
+        }
+    }
 };
 </script>