Added metric visibility options. Closes #2244
This commit is contained in:
@@ -36,6 +36,27 @@ class Metric extends Model implements HasPresenter
|
||||
*/
|
||||
const CALC_AVG = 1;
|
||||
|
||||
/**
|
||||
* Viewable only authenticated users.
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
const VISIBLE_AUTHENTICATED = 0;
|
||||
|
||||
/**
|
||||
* Viewable by public.
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
const VISIBLE_GUEST = 1;
|
||||
|
||||
/**
|
||||
* Viewable by nobody.
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
const VISIBLE_HIDDEN = 2;
|
||||
|
||||
/**
|
||||
* The model's attributes.
|
||||
*
|
||||
@@ -50,6 +71,7 @@ class Metric extends Model implements HasPresenter
|
||||
'default_view' => 1,
|
||||
'threshold' => 5,
|
||||
'order' => 0,
|
||||
'visible' => 1,
|
||||
];
|
||||
|
||||
/**
|
||||
@@ -66,6 +88,7 @@ class Metric extends Model implements HasPresenter
|
||||
'default_view' => 'int',
|
||||
'threshold' => 'int',
|
||||
'order' => 'int',
|
||||
'visible' => 'int',
|
||||
];
|
||||
|
||||
/**
|
||||
@@ -84,6 +107,7 @@ class Metric extends Model implements HasPresenter
|
||||
'default_view',
|
||||
'threshold',
|
||||
'order',
|
||||
'visible',
|
||||
];
|
||||
|
||||
/**
|
||||
@@ -99,6 +123,7 @@ class Metric extends Model implements HasPresenter
|
||||
'places' => 'required|numeric|between:0,4',
|
||||
'default_view' => 'required|numeric|between:0,3',
|
||||
'threshold' => 'required|numeric|between:0,10',
|
||||
'visible' => 'required|numeric|between:0,2',
|
||||
];
|
||||
|
||||
/**
|
||||
@@ -113,6 +138,7 @@ class Metric extends Model implements HasPresenter
|
||||
'default_value',
|
||||
'calc_type',
|
||||
'order',
|
||||
'visible',
|
||||
];
|
||||
|
||||
/**
|
||||
@@ -134,7 +160,19 @@ class Metric extends Model implements HasPresenter
|
||||
*/
|
||||
public function scopeDisplayable(Builder $query)
|
||||
{
|
||||
return $query->where('display_chart', '=', true);
|
||||
return $query->where('display_chart', '=', true)->where('visible', '!=', self::VISIBLE_HIDDEN);
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds all metrics which are visible to public.
|
||||
*
|
||||
* @param \Illuminate\Database\Eloquent\Builder $query
|
||||
*
|
||||
* @return \Illuminate\Database\Eloquent\Builder
|
||||
*/
|
||||
public function scopeVisible(Builder $query)
|
||||
{
|
||||
return $query->where('visible', '=', self::VISIBLE_GUEST);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user