diff --git a/i18n/en.ts b/i18n/en.ts
index 1be0b2700fa149453c5759955dbf7d60411f1b01..d266faa63332d4f0d22e3962d9979f4e1d46aaf8 100644
--- a/i18n/en.ts
+++ b/i18n/en.ts
@@ -603,8 +603,8 @@ export const lang_en: LangObj = {
   "You can import the .csv file from the 'download all submissions' feature here. At least the columns UserId, PLangId, ManualPoints, NoteForOtherTutors, FeedbackForStudent are needed. The columns ManualPoints, NoteForOtherTutors, FeedbackForStudent are used to overwrite the values in the backend. The first line must be a comment (starting with #) containing the release code. If the upload was successful then the view is automatically refreshed": "You can import the .csv file from the 'download all submissions' feature here. At least the columns UserId, PLangId, ManualPoints, NoteForOtherTutors, FeedbackForStudent are needed. The columns ManualPoints, NoteForOtherTutors, FeedbackForStudent are used to overwrite the values in the backend. The first line must be a comment (starting with #) containing the release code. If the upload was successful then the view is automatically refreshed",
   "Re-run automatic assessments": "Re-run automatic assessments",
   "This re-runs all submit tests (and normal tests if specified in the release) and preserves the manual points and comments (for student, other tutors). This is also the case for single re-run.": "This re-runs all submit tests (and normal tests if specified in the release) and preserves the manual points and comments (for student, other tutors). This is also the case for single re-run.",
-  "The summed normal test points. The percentage represent the students where all normal tests passed and the participation should count. If nothing is displayed none normal test was run yet.": "The summed normal test points. The percentage represent the students where all normal tests passed and the participation should count. If nothing is displayed none normal test was run yet.",
-  "The summed submit test points. The percentage represent the students where all submit tests passed and the participation should count. If nothing is displayed none submit test was run yet.": "The summed submit test points. The percentage represent the students where all submit tests passed and the participation should count. If nothing is displayed none submit test was run yet.",
+  "The summed normal test points. The percentage represent the students where all normal tests passed and the participation should count. If the auto assessment was not run/finished yet the sum of positive tests are displayed (only the test that the user actually executed).": "The summed normal test points. The percentage represent the students where all normal tests passed and the participation should count. If the auto assessment was not run/finished yet the sum of positive tests are displayed (only the test that the user actually executed).",
+  "The summed submit test points. The percentage represent the students where all submit tests passed and the participation should count. If the auto assessment was not run/finished yet the sum of positive tests are displayed (only the test that the user actually executed).": "The summed submit test points. The percentage represent the students where all submit tests passed and the participation should count. If the auto assessment was not run/finished yet the sum of positive tests are displayed (only the test that the user actually executed).",
   "with all points" : "with all points",
   "Download": "Download",
   "Re-run": "Re-run",
diff --git a/i18n/i18nRoot.ts b/i18n/i18nRoot.ts
index e66381619c0b9901b82b7fefdfbdf58336d24fa2..202488bee74f34d5de024d64926058760d912c91 100644
--- a/i18n/i18nRoot.ts
+++ b/i18n/i18nRoot.ts
@@ -608,8 +608,8 @@ export interface LangObj {
   "You can import the .csv file from the 'download all submissions' feature here. At least the columns UserId, PLangId, ManualPoints, NoteForOtherTutors, FeedbackForStudent are needed. The columns ManualPoints, NoteForOtherTutors, FeedbackForStudent are used to overwrite the values in the backend. The first line must be a comment (starting with #) containing the release code. If the upload was successful then the view is automatically refreshed": string
   "Re-run automatic assessments": string
   "This re-runs all submit tests (and normal tests if specified in the release) and preserves the manual points and comments (for student, other tutors). This is also the case for single re-run.": string
-  "The summed normal test points. The percentage represent the students where all normal tests passed and the participation should count. If nothing is displayed none normal test was run yet.": string
-  "The summed submit test points. The percentage represent the students where all submit tests passed and the participation should count. If nothing is displayed none submit test was run yet.": string
+  "The summed normal test points. The percentage represent the students where all normal tests passed and the participation should count. If the auto assessment was not run/finished yet the sum of positive tests are displayed (only the test that the user actually executed).": string
+  "The summed submit test points. The percentage represent the students where all submit tests passed and the participation should count. If the auto assessment was not run/finished yet the sum of positive tests are displayed (only the test that the user actually executed).": string
   "with all points": string
   "Download": string
   "Re-run": string
diff --git a/src/components/sites/manageOwnOrGroupExerciseComponents/submissionsSite/listView.tsx b/src/components/sites/manageOwnOrGroupExerciseComponents/submissionsSite/listView.tsx
index a478be1500ca077580eadb28620ecac7c270e538..2c8dfa57f0777cbc61c10e3701e5a197926ab333 100644
--- a/src/components/sites/manageOwnOrGroupExerciseComponents/submissionsSite/listView.tsx
+++ b/src/components/sites/manageOwnOrGroupExerciseComponents/submissionsSite/listView.tsx
@@ -309,7 +309,7 @@ class ListView extends React.Component<Props, any> {
                 >
                   <HelpPopup wide icon="flag"
                              defaultText={getI18n(this.props.langId,
-                                                  'The summed normal test points. The percentage represent the students where all normal tests passed and the participation should count. If nothing is displayed none normal test was run yet.'
+                                                  'The summed normal test points. The percentage represent the students where all normal tests passed and the participation should count. If the auto assessment was not run/finished yet the sum of positive tests are displayed (only the test that the user actually executed).'
                              )}/>
 
                   {
@@ -353,7 +353,7 @@ class ListView extends React.Component<Props, any> {
                 >
                   <HelpPopup wide icon="flag checkered"
                              defaultText={getI18n(this.props.langId,
-                                                  'The summed submit test points. The percentage represent the students where all submit tests passed and the participation should count. If nothing is displayed none submit test was run yet.'
+                                                  'The summed submit test points. The percentage represent the students where all submit tests passed and the participation should count. If the auto assessment was not run/finished yet the sum of positive tests are displayed (only the test that the user actually executed).'
                              )}/>
 
                   {
@@ -527,7 +527,8 @@ class ListView extends React.Component<Props, any> {
                                                    this.props.release.hasAutomaticAssessmentFinished,
                                                    false,
                                                    submission.normalTestPoints,
-                                                   submission.maxNormalTestPoints
+                                                   submission.maxNormalTestPoints,
+                                                   true
                           )
                         }
                       </span>
@@ -540,7 +541,8 @@ class ListView extends React.Component<Props, any> {
                                                    this.props.release.hasAutomaticAssessmentFinished,
                                                    false,
                                                    submission.submitTestPoints,
-                                                   submission.maxSubmitTestPoints
+                                                   submission.maxSubmitTestPoints,
+                                                   true
                           )
                         }
                       </span>
diff --git a/src/components/sites/tutorViewSite/manualAssessmentPanel/manualAssessmentPanelView.tsx b/src/components/sites/tutorViewSite/manualAssessmentPanel/manualAssessmentPanelView.tsx
index a4565119e2d68ea6353406aac3d0e2040360e591..6443862712c7cd3b4f60a6c67d5f656b73995b5c 100644
--- a/src/components/sites/tutorViewSite/manualAssessmentPanel/manualAssessmentPanelView.tsx
+++ b/src/components/sites/tutorViewSite/manualAssessmentPanel/manualAssessmentPanelView.tsx
@@ -69,13 +69,15 @@ class manualAssessmentPanelView extends React.Component<Props, any> {
                                                             this.props.release.hasAutomaticAssessmentFinished,
                                                             this.props.assessment.hasAssessment === false,
                                                             this.props.assessment.submitTestPoints,
-                                                            this.props.assessment.maxSubmitTestPoints)
+                                                            this.props.assessment.maxSubmitTestPoints,
+                                                            false)
 
     const normalTestPointsString = assessmentPointsToString(this.props.langId,
                                                             this.props.release.hasAutomaticAssessmentFinished,
                                                             this.props.assessment.hasAssessment === false,
                                                             this.props.assessment.normalTestPoints,
-                                                            this.props.assessment.maxNormalTestPoints)
+                                                            this.props.assessment.maxNormalTestPoints,
+                                                            false)
 
     return (
       <div className="fh mar-right-half">
diff --git a/src/helpers/convertersAndTransformers.ts b/src/helpers/convertersAndTransformers.ts
index 7bac4f51e5e721e43a20334ed86e876f4b733912..1ef429112d84219af78b7514ecbb53a2799a6835 100644
--- a/src/helpers/convertersAndTransformers.ts
+++ b/src/helpers/convertersAndTransformers.ts
@@ -1073,14 +1073,15 @@ function trimStart(text: string): string {
  * @param assessmentIsEmpty {@link AssessmentFullBase.hasAssessment} ?
  * @param testPoints
  * @param maxTestPoints
+ * @param ignoreHasAssessmentFinished true: param {@link hasAutomaticAssessmentFinished} is ignored, false: not
  */
-export function assessmentPointsToString(langId: KnownLangs, hasAutomaticAssessmentFinished: boolean, assessmentIsEmpty: boolean, testPoints: number | null, maxTestPoints: number | null): string {
+export function assessmentPointsToString(langId: KnownLangs, hasAutomaticAssessmentFinished: boolean, assessmentIsEmpty: boolean, testPoints: number | null, maxTestPoints: number | null, ignoreHasAssessmentFinished: boolean): string {
 
   if (assessmentIsEmpty) {
     return getI18n(langId, 'Not assessed')
   }
 
-  if (hasAutomaticAssessmentFinished === false) {
+  if (ignoreHasAssessmentFinished === false && hasAutomaticAssessmentFinished === false) {
     return getI18n(langId, 'Not assessed')
   }
 
diff --git a/static_pages/firstExternalLoginPage/firstLoginExternalLogin.ts b/static_pages/firstExternalLoginPage/firstLoginExternalLogin.ts
index dbae179668d3e6f828e682e7ad4ac9611317a4d8..3eab95cd046df476aa70c0f0584968ffe2f537e7 100644
--- a/static_pages/firstExternalLoginPage/firstLoginExternalLogin.ts
+++ b/static_pages/firstExternalLoginPage/firstLoginExternalLogin.ts
@@ -6,6 +6,20 @@
 
 declare var CryptoJS:any;
 
+
+function onpageLoad()  {
+
+  const tid = getParameterByName('tid')
+
+  if (tid === null || tid === '') {
+    alert("Error: tid is missing.")
+
+    const registerBtn = document.getElementById('registerButton')
+    registerBtn.setAttribute("disabled", "true")
+  }
+}
+window.onload = onpageLoad
+
 function getParameterByName(name: string, url?: string) {
   if (!url) url = window.location.href;
   name = name.replace(/[\[\]]/g, "\\$&");
diff --git a/webpack.config.dist.js b/webpack.config.dist.js
index 880c9941063d7246070f7f976e76a69b39897ba9..b504062c85cd38c37347faffedfea44651fdb3f4 100644
--- a/webpack.config.dist.js
+++ b/webpack.config.dist.js
@@ -159,11 +159,11 @@ module.exports = {
       },
       //--- copy also static pages & assets
       {
-        from: 'static_pages/static/robots.txt',
+        from: 'static_pages/just_copy/robots.txt',
         to: 'robots.txt',
       },
       {
-        from: 'static_pages/static/sitemap.xml',
+        from: 'static_pages/just_copy/sitemap.xml',
         to: 'sitemap.xml',
       },
       {