diff --git a/backend/TE/AppDB.php b/backend/TE/AppDB.php
index c40b742479f3ce719ab006ba4ab93f1d3ebb9156..6d2284040de4e6ff41e9d2d4e0e39fd879740367 100644
--- a/backend/TE/AppDB.php
+++ b/backend/TE/AppDB.php
@@ -1747,6 +1747,49 @@ class AppDB_TE extends AppDB
         return $res;
     }
     // User views
+    public function getCasesDone()
+    {
+        $sql = "SELECT exid, count( exid ) AS count, name, array_agg( status ) AS status, array_agg( value ) AS value
+                FROM ( 
+                    SELECT assignment.id AS aid, exercise.id AS exid, exercise.name, getAssignmentStatus( assignment.id ) AS status, value
+                    FROM assignment
+                    JOIN exercise ON assignment.exercise = exercise.id
+                    LEFT JOIN ( select * FROM observation where type = 3 and restype = 3 ) AS tmp ON tmp.assignment = assignment.id
+                    WHERE value IS NOT NULL
+                ) AS b
+                GROUP BY exid, name
+                ORDER BY count desc, name asc";
+        
+        $res = $this->query( $sql );
+        
+        foreach( $res as &$row )
+        {
+            $a = explode( ',', str_replace( [ '{', '}' ], '', $row[ 'value' ] ) );
+            $b = explode( ',', str_replace( [ '{', '}' ], '', $row[ 'status' ] ) );
+            
+            $stat = array( 1=>0, 2=>0, 3=>0, 4=>0 );
+            $nv = 0;
+            
+            for( $i = 0; $i < count( $a ); $i++ )
+            {
+                if( ( int ) $a[ $i ] == 0 )
+                {
+                    $stat[ 4 ] += 1;
+                    $nv += 1;
+                } else {
+                    $stat[ ( int ) $b[ $i ] ] += 1;
+                }
+            }
+            
+            $row[ 'stat' ] = $stat;
+            unset( $row[ 'value' ] );
+            unset( $row[ 'status' ] );
+            
+            $row[ 'nv' ] = $nv; 
+        }
+        
+        return $res;
+    }
     public function getHomeData()
     {
         $res = $this->query( "
diff --git a/js/backend.admin.js b/js/backend.admin.js
index 5d4c4e9cfad9e4f2f782f7f2afe5ceef494e5425..8bb138e1a785c312a94b8e8745ad02552424a45f 100644
--- a/js/backend.admin.js
+++ b/js/backend.admin.js
@@ -607,6 +607,78 @@ Pianos4Backend.AdminHome = function( selector, params )
 	            	}
 		        } );
     	}
+        
+        div.append(
+            $( '<div />' )
+                .attr( 'id', 'stattable' )
+                .css( 'width', '800px' )
+                .css( 'margin-top', '30px' )
+        );
+        
+        udb.app().getModel().rpc( 'getCasesDone', function( data )
+        {
+            $( '#stattable' ).qtable( {
+                data: data,
+                columnMode: 'mapping',
+                columns: [
+                    {
+                        title: 'Name',
+                        render: function( data, i, j, cell )
+                        {
+                            cell.append( 
+                                $( '<span />' )
+                                    .text( data[ i ].name )
+                            );
+                        },
+                    }, {
+                        title: 'Total',
+                        render: function( data, i, j, cell )
+                        {
+                            cell.append( 
+                                $( '<span />' )
+                                    .text( data[ i ].count )
+                            );
+                        }
+                    }, {
+                        title: 'No value',
+                        render: function( data, i, j, cell )
+                        {
+                            cell.append( 
+                                $( '<span />' )
+                                    .text( data[ i ].nv )
+                            );
+                        }
+                    }, {
+                        title: 'Analysis started',
+                        render: function( data, i, j, cell )
+                        {
+                            cell.append( 
+                                $( '<span />' )
+                                    .text( data[ i ].stat[ '1' ] )
+                            );
+                        }
+                    }, {
+                        title: 'Comparison started',
+                        render: function( data, i, j, cell )
+                        {
+                            cell.append( 
+                                $( '<span />' )
+                                    .text( data[ i ].stat[ '3' ] )
+                            );
+                        }
+                    }, {
+                        title: 'Comparison submitted',
+                        render: function( data, i, j, cell )
+                        {
+                            cell.append( 
+                                $( '<span />' )
+                                    .text( data[ i ].stat[ '4' ] )
+                            );
+                        }
+                    },
+                ]
+            } );
+        } );
     }
 }