示例#1
0
 public function getValue($record)
 {
     $value = $this->admin->getColumnValue($this->name, $record);
     list($column, $model) = $this->admin->getChainedModel($this->name, $record);
     if ($model === null) {
         return null;
     }
     $field = $model->getField($column, false);
     if ($field) {
         if (is_a($field, HasManyField::className()) || is_a($field, ManyToManyField::className())) {
             return null;
         } else {
             if (is_a($field, BooleanField::className())) {
                 return $value ? '<i class="icon checkmark"></i>' : '';
             } else {
                 if (!empty($field->choices) && array_key_exists($value, $field->choices)) {
                     return $field->choices[$value];
                 } else {
                     return (string) $value;
                 }
             }
         }
     } else {
         return (string) $model->{$column};
     }
 }
示例#2
0
 public static function getFields()
 {
     return ['name' => ['class' => CharField::className()], 'products' => ['class' => HasManyField::className(), 'modelClass' => Product::className(), 'null' => true, 'relatedName' => 'category', 'editable' => false]];
 }
示例#3
0
 public static function getFields()
 {
     return ['model_tyre' => ['class' => HasManyField::className(), 'modelClass' => ModelTyre::className()]];
 }
 public static function getFields()
 {
     return ['category_set' => ['class' => HasManyField::className(), 'modelClass' => Book::className()], 'categories' => ['class' => HasManyField::className(), 'modelClass' => Book::className(), 'relatedName' => 'category_new']];
 }
示例#5
0
 public static function getFields()
 {
     return ['username' => ['class' => CharField::className(), 'validators' => [new MinLengthValidator(3), new MaxLengthValidator(20)]], 'password' => ['class' => PasswordField::className(), 'null' => true], 'groups' => ['class' => ManyToManyField::className(), 'modelClass' => Group::className(), 'through' => Membership::className()], 'addresses' => ['class' => HasManyField::className(), 'modelClass' => Customer::className(), 'relatedName' => 'user', 'editable' => false]];
 }
示例#6
0
 public function exportCsv(array $data = [])
 {
     $qs = $this->getQuerySet($this->getModel());
     if (isset($data['models'])) {
         $qs->filter(['pk__in' => $data['models']]);
     }
     $exportData = [];
     $header = [];
     $modelsIterator = $qs->batch(100);
     $noExportFieldsClassName = [ForeignField::className(), HasManyField::className(), ManyToManyField::className(), OneToOneField::className()];
     foreach ($modelsIterator as $models) {
         foreach ($models as $model) {
             $fields = $model->getFieldsInit();
             $line = [];
             foreach ($fields as $attribute => $field) {
                 if (in_array($field->className(), $noExportFieldsClassName)) {
                     continue;
                 }
                 $verboseName = $field->getVerboseName($model);
                 if (!array_key_exists($verboseName, $header)) {
                     $header[$verboseName] = $verboseName;
                 }
                 $line[] = $model->{$attribute};
             }
             $exportData[] = $line;
         }
     }
     $this->forceCsv($header, $exportData);
 }