Skip to content

Commit

Permalink
Related properties update
Browse files Browse the repository at this point in the history
  • Loading branch information
skeeks-semenov committed Jan 16, 2024
1 parent 652a34a commit 283e97b
Show file tree
Hide file tree
Showing 17 changed files with 191 additions and 156 deletions.
95 changes: 51 additions & 44 deletions src/controllers/AdminUserController.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,6 @@
use skeeks\cms\queryfilters\filters\modes\FilterModeEq;
use skeeks\cms\queryfilters\QueryFiltersEvent;
use skeeks\cms\rbac\CmsManager;
use skeeks\cms\shop\models\ShopBonusTransaction;
use skeeks\cms\shop\models\ShopOrder;
use skeeks\cms\widgets\ActiveForm;
use skeeks\cms\widgets\GridView;
Expand Down Expand Up @@ -416,18 +415,18 @@ public function actions()
'isVisible' => false,
'callback' => [$this, 'addContractor'],
],
'send-sms' => [
'send-sms' => [
'class' => BackendModelAction::class,
'isVisible' => false,
'callback' => [$this, 'sendSms'],
],

'create' => [
//"callback" => [$this, 'create'],
'size' => BackendAction::SIZE_SMALL,
'generateAccess' => true,
'fields' => [$this, 'createFields'],
'buttons' => ["save"],
'buttons' => ["save"],
],


Expand Down Expand Up @@ -508,8 +507,7 @@ public function actions()
},
],




'payments' => [
'class' => BackendGridModelRelatedAction::class,
'name' => 'Платежи',
Expand Down Expand Up @@ -537,13 +535,13 @@ public function actions()


],

"checks" => [
'class' => BackendGridModelRelatedAction::class,
'accessCallback' => true,
'name' => "Чеки",
'icon' => 'fa fa-list',
'class' => BackendGridModelRelatedAction::class,
'accessCallback' => true,
'name' => "Чеки",
'icon' => 'fa fa-list',

'controllerRoute' => "/shop/admin-shop-check",
'relation' => ['cms_user_id' => 'id'],
'priority' => 600,
Expand All @@ -561,8 +559,8 @@ public function actions()

},
],
'bills' => [

'bills' => [
'class' => BackendGridModelRelatedAction::class,
'name' => 'Счета',
'priority' => 600,
Expand All @@ -587,8 +585,8 @@ public function actions()
},

],


"bonus" => [
'class' => BackendGridModelRelatedAction::class,
'accessCallback' => true,
Expand Down Expand Up @@ -655,7 +653,7 @@ public function actions()

'update' => [
'fields' => [$this, 'updateFields'],
'buttons' => ["save"],
'buttons' => ["save"],
'isVisible' => false,
'generateAccess' => true,
"accessCallback" => function () {
Expand Down Expand Up @@ -782,7 +780,7 @@ function updateFields() {
'class' => SelectField::class,
'allowNull' => false,
'items' => [
'0' => "Человек",
'0' => "Человек",
'1' => "Компания",
],
],
Expand All @@ -809,7 +807,7 @@ function updateFields() {
'content' => '</div><div class="sx-0-block">',
],

'gender' => [
'gender' => [
'class' => SelectField::class,
'allowNull' => false,
'items' => [
Expand All @@ -828,12 +826,8 @@ function updateFields() {
],






'email',
'phone' => [
'phone' => [
'elementOptions' => [
'placeholder' => '+7 903 722-28-73',
],
Expand Down Expand Up @@ -907,7 +901,6 @@ public function updateFields()
}



if ((\Yii::$app->user->can("cms/admin-user/update-advanced", ['model' => $this->model]))
|| \Yii::$app->user->can(\skeeks\cms\rbac\CmsManager::PERMISSION_ROOT_ACCESS)) {

Expand Down Expand Up @@ -1016,33 +1009,48 @@ public function updateEav()

$rr = new RequestResponse();

if ($post = \Yii::$app->request->post()) {
$model->load(\Yii::$app->request->post());
$relatedModel->load(\Yii::$app->request->post());
}
try {


if ($rr->isRequestPjaxPost()) {
if (!\Yii::$app->request->post(RequestResponse::DYNAMIC_RELOAD_NOT_SUBMIT)) {
if ($post = \Yii::$app->request->post()) {
$model->load(\Yii::$app->request->post());
$relatedModel->load(\Yii::$app->request->post());

$model->save();
}

if ($rr->isRequestAjaxPost()) {

if ($relatedModel->save()) {
if (!\Yii::$app->request->post(RequestResponse::DYNAMIC_RELOAD_NOT_SUBMIT)) {

$is_saved = true;
$model->load(\Yii::$app->request->post());
$relatedModel->load(\Yii::$app->request->post());

$model->save();
if ($relatedModel->save()) {

$is_saved = true;

if (\Yii::$app->request->post('submit-btn') == 'save') {
if (\Yii::$app->request->post('submit-btn') == 'save') {
} else {
$redirect = $this->url;
}

$rr->message = "Сохранено";
$rr->success = true;
//$model->refresh();
$relatedModel = $model->relatedPropertiesModel;
} else {
$redirect = $this->url;
print_r($relatedModel->errors);
die;
}

//$model->refresh();
$relatedModel = $model->relatedPropertiesModel;
}
}

return $rr;

}
} catch (\Exception $exception) {
echo $exception->getMessage();
die;
}


Expand Down Expand Up @@ -1251,9 +1259,8 @@ public function saveSitePermissions()

return $rr;
}





public function addContractor()
{
$rr = new RequestResponse();
Expand All @@ -1272,7 +1279,7 @@ public function addContractor()
//print_r($q->createCommand()->rawSql);die;
$contractor = $q->one();
if ($contractor) {

if ($user->getCmsContractorMaps()->andWhere(['cms_contractor_id' => $contractor->id])->exists()) {
throw new Exception("Эта компания уже добавлена");
}
Expand Down
13 changes: 9 additions & 4 deletions src/models/CmsContentElement.php
Original file line number Diff line number Diff line change
Expand Up @@ -541,11 +541,11 @@ public function getRelatedProperties()
/*if (\Yii::$app->request->post()) {
print_r($cacheKey);
}*/
/*echo $cacheKey;
echo "<br>";*/

if (isset(self::$_relatedProperties[$cacheKey])) {
/*if (\Yii::$app->request->post()) {
print_r("111111111");
}*/
/*print_r(self::$_relatedProperties[$cacheKey]);die;*/
return self::$_relatedProperties[$cacheKey];
}

Expand Down Expand Up @@ -599,10 +599,15 @@ public function getRelatedProperties()




self::$_relatedProperties[$cacheKey] = $result;

/*print_r(self::$_relatedProperties[$cacheKey]);
echo count(self::$_relatedProperties[$cacheKey]);
echo "------<br>";*/

//Память может переполниться...
if (count(self::$_relatedProperties[$cacheKey]) > 10) {
if (count(self::$_relatedProperties[$cacheKey]) > 20) {
self::$_relatedProperties = [];
}

Expand Down
42 changes: 29 additions & 13 deletions src/relatedProperties/PropertyType.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,11 @@

use skeeks\cms\components\Cms;
use skeeks\cms\IHasConfigForm;
use skeeks\cms\relatedProperties\models\RelatedPropertiesModel;
use skeeks\cms\relatedProperties\models\RelatedPropertyModel;
use skeeks\cms\traits\TConfigForm;
use yii\base\Model;
use yii\helpers\ArrayHelper;
use yii\helpers\Json;
use yii\widgets\ActiveForm;

Expand Down Expand Up @@ -76,9 +78,9 @@ public function getIsMultiple()
* Drawing form element
* @return \yii\widgets\ActiveField
*/
public function renderForActiveForm()
public function renderForActiveForm(RelatedPropertiesModel $relatedPropertiesModel)
{
$field = $this->activeForm->field($this->property->relatedPropertiesModel, $this->property->code);
$field = $this->activeForm->field($relatedPropertiesModel, $this->property->code);

if (!$field) {
return '';
Expand All @@ -94,12 +96,12 @@ public function renderForActiveForm()
*
* @return $this
*/
public function addRules()
public function addRules(RelatedPropertiesModel $relatedPropertiesModel)
{
$this->property->relatedPropertiesModel->addRule($this->property->code, 'safe');
$relatedPropertiesModel->addRule($this->property->code, 'safe');

if ($this->property->isRequired) {
$this->property->relatedPropertiesModel->addRule($this->property->code, 'required');
$relatedPropertiesModel->addRule($this->property->code, 'required');
}

return $this;
Expand All @@ -112,7 +114,7 @@ public function addRules()
*
* @return null
*/
public function getDefaultValue()
public function getDefaultValue(RelatedPropertiesModel $relatedPropertiesModel)
{
return null;
}
Expand All @@ -121,9 +123,9 @@ public function getDefaultValue()
* @return string
* @depricated
*/
public function getStringValue()
public function getStringValue(RelatedPropertiesModel $relatedPropertiesModel)
{
$value = $this->property->relatedPropertiesModel->getAttribute($this->property->code);
$value = $relatedPropertiesModel->getAttribute($this->property->code);
/*print_r($this->property->relatedPropertiesModel->toArray());*/
/*echo "<br />_{$value}-{$this->property->relatedPropertiesModel->relatedElementModel->id}_<br />";*/
if (is_array($value)) {
Expand All @@ -133,22 +135,36 @@ public function getStringValue()
}
}



/**
* @see RelatedPropertyModel::getHandler() //удалить property
*
* @param array $fields
* @param array $expand
* @param $recursive
* @return array
*/
public function toArray(array $fields = [], array $expand = [], $recursive = true)
{
$result = parent::toArray($fields, $expand, $recursive);
ArrayHelper::remove($result, "property");
return $result;
}

/**
* @return string
*/
public function getAsText()
public function getAsText(RelatedPropertiesModel $relatedPropertiesModel)
{
return $this->stringValue;
return $this->getStringValue($relatedPropertiesModel);
}

/**
* @return string
*/
public function getAsHtml()
public function getAsHtml(RelatedPropertiesModel $relatedPropertiesModel)
{
return $this->asText;
return $this->getAsText($relatedPropertiesModel);
}

/**
Expand Down
Loading

0 comments on commit 283e97b

Please sign in to comment.