Example #1
0
File: Meta.php Project: qantus/Meta
 public static function getFields()
 {
     $fields = ['is_custom' => ['class' => BooleanField::className(), 'verboseName' => MetaModule::t('Is custom'), 'helpText' => MetaModule::t('If "Set manually" field was not set, data will be generated automatically')], 'title' => ['class' => CharField::className(), 'length' => 200, 'verboseName' => MetaModule::t('Title')], 'keywords' => ['class' => CharField::className(), 'length' => 200, 'verboseName' => MetaModule::t('Keywords'), 'null' => true], 'description' => ['class' => CharField::className(), 'length' => 200, 'verboseName' => MetaModule::t('Description'), 'null' => true], 'url' => ['class' => CharField::className(), 'verboseName' => MetaModule::t('Url'), 'null' => true]];
     $onSite = Mindy::app()->getModule('Meta')->onSite;
     if ($onSite) {
         $fields['site'] = ['class' => ForeignField::className(), 'modelClass' => Mindy::app()->getModule('Sites')->modelClass, 'verboseName' => SitesModule::t('Site'), 'required' => true, 'null' => true];
     }
     return $fields;
 }
Example #2
0
 public static function getFields()
 {
     return ['name' => ['class' => CharField::className(), 'default' => 'Product', 'validators' => [function ($value) {
         if (mb_strlen($value, 'UTF-8') < 3) {
             return "Minimal length < 3";
         }
         return true;
     }]], 'price' => ['class' => CharField::className(), 'default' => 0], 'description' => ['class' => TextField::className(), 'null' => true], 'category' => ['class' => ForeignField::className(), 'modelClass' => Category::className(), 'null' => true, 'relatedName' => 'products'], 'lists' => ['class' => ManyToManyField::className(), 'modelClass' => ProductList::className()]];
 }
 public function getValue()
 {
     if ($this->reversed) {
         $model = $this->getModel();
         $modelClass = $this->modelClass;
         return $modelClass::objects()->filter([$this->reversedTo() => $model->pk])->get();
     } else {
         return parent::getValue();
     }
 }
Example #4
0
 public static function getFields()
 {
     return ['customer' => ['class' => ForeignField::className(), 'modelClass' => Customer::className()], 'products' => ['class' => ManyToManyField::className(), 'modelClass' => Product::className()], 'discount' => ['class' => IntField::className(), 'null' => true]];
 }
Example #5
0
 public function getSafeUp()
 {
     $lines = [];
     $added = [];
     $deleted = [];
     $fields = $this->getFields();
     $lastMigrationFields = $this->getLastMigration();
     foreach ($fields as $name => $field) {
         if (array_key_exists($name, $lastMigrationFields) === false) {
             $added[$name] = $field;
         }
     }
     if (!empty($lastMigrationFields)) {
         foreach ($lastMigrationFields as $name => $field) {
             if (array_key_exists($name, $fields) === false) {
                 $deleted[$name] = $field;
                 continue;
             }
             if ($field['hash'] == $fields[$name]['hash']) {
                 continue;
             }
             if ($field['sqlType'] != $fields[$name]['sqlType']) {
                 $lines[] = $this->space . '$this->alterColumn("' . $this->_model->tableName() . '", "' . $name . '", "' . $fields[$name]['sqlType'] . '");';
             } elseif ($field['sqlType'] == $fields[$name]['sqlType'] && $fields['length'] != $fields[$name]['length']) {
                 $lines[] = $this->space . '$this->alterColumn("' . $this->_model->tableName() . '", "' . $name . '", "' . $fields[$name]['sqlType'] . '");';
             }
         }
         foreach ($deleted as $name => $field) {
             $lines[] = $this->space . '$this->dropColumn("' . $this->_model->tableName() . '", "' . $name . '");';
         }
     }
     if (empty($lastMigrationFields)) {
         $columns = [];
         foreach ($this->_model->getFieldsInit() as $name => $field) {
             if ($field->sqlType() !== false) {
                 if (is_a($field, ForeignField::className())) {
                     $name .= "_id";
                 }
                 $columns[$name] = $field->sql();
             } else {
                 if (is_a($field, ManyToManyField::className())) {
                     /* @var $field \Mindy\Orm\Fields\ManyToManyField */
                     if ($field->through === null) {
                         $lines[] = $this->space . '$this->createTable("' . $field->getTableName() . '", ' . $this->compileColumns($field->getColumns()) . ', null, true);';
                     }
                 }
             }
         }
         $lines[] = $this->space . '$this->createTable("' . $this->_model->tableName() . '", ' . $this->compileColumns($columns) . ');';
     } else {
         foreach ($added as $name => $field) {
             $lines[] = $this->space . '$this->addColumn("' . $this->_model->tableName() . '", "' . $name . '", "' . $field['sqlType'] . '");';
         }
     }
     return implode("\n", $lines);
 }
Example #6
0
 public static function getFields()
 {
     return ['user' => ['class' => ForeignField::className(), 'null' => true, 'modelClass' => User::className(), 'verboseName' => CoreModule::t('User')], 'ip' => ['class' => IpField::className(), 'null' => false, 'verboseName' => CoreModule::t('Ip address')], 'name' => ['class' => CharField::className(), 'verboseName' => CoreModule::t('Message'), 'null' => true], 'message' => ['class' => TextField::className(), 'verboseName' => CoreModule::t('Message')], 'module' => ['class' => CharField::className(), 'verboseName' => CoreModule::t('Module')], 'model' => ['class' => CharField::className(), 'verboseName' => CoreModule::t('Model'), 'null' => true], 'url' => ['class' => CharField::className(), 'null' => true, 'verboseName' => CoreModule::t('Url')], 'created_at' => ['class' => DateTimeField::className(), 'autoNowAdd' => true, 'verboseName' => CoreModule::t('Created at')]];
 }
Example #7
0
 public static function getFields()
 {
     return ['user' => ['class' => ForeignField::className(), 'modelClass' => User::className(), 'verboseName' => self::t("User")], 'permission' => ['class' => ForeignField::className(), 'modelClass' => Permission::className(), 'verboseName' => self::t("Permission")]];
 }
Example #8
0
 public static function getFields()
 {
     return ['user' => ['class' => ForeignField::className(), 'modelClass' => User::className(), 'relatedName' => 'addresses', 'null' => true], 'address' => ['class' => TextField::className()]];
 }
Example #9
0
 public static function getFields()
 {
     return ['name' => ['class' => CharField::className()], 'tyre' => ['class' => ForeignField::className(), 'modelClass' => Tyre::className()]];
 }
Example #10
0
 public static function getFields()
 {
     return ['user' => ['class' => ForeignField::className(), 'modelClass' => User::className(), 'verboseName' => UserModule::t('User')], 'key' => ['class' => CharField::className(), 'length' => 40, 'verboseName' => UserModule::t("Key"), 'unique' => true]];
 }
Example #11
0
 public static function getFields()
 {
     return ['user_group' => ['class' => ForeignField::className(), 'modelClass' => Group::className(), 'verboseName' => UserModule::t("Group")], 'permission' => ['class' => ForeignField::className(), 'modelClass' => Permission::className(), 'verboseName' => UserModule::t("Permission")]];
 }
 public static function getFields()
 {
     return ['project' => ['class' => ForeignField::className(), 'modelClass' => Project::className()], 'worker' => ['class' => ForeignField::className(), 'modelClass' => Worker::className()], 'position' => ['class' => IntField::className()], 'curator' => ['class' => ForeignField::className(), 'modelClass' => Worker::className()]];
 }
 public static function getFields()
 {
     return ['owner_id' => ['class' => IntField::className(), 'verboseName' => UserModule::t("Owner")], 'type' => ['class' => IntField::className(), 'choices' => [Permissions::TYPE_USER, Permissions::TYPE_GROUP], 'verboseName' => UserModule::t("Type")], 'permission' => ['class' => ForeignField::className(), 'modelClass' => PermissionObject::className(), 'verboseName' => UserModule::t("Permission")]];
 }
Example #14
0
 public static function getFields()
 {
     return ['group' => ['class' => ForeignField::className(), 'modelClass' => Group::className()], 'user' => ['class' => ForeignField::className(), 'modelClass' => User::className()]];
 }
Example #15
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);
 }
Example #16
0
 public static function getFields()
 {
     return ['category' => ['class' => ForeignField::className(), 'modelClass' => BookCategory::className(), 'null' => true, 'editable' => false], 'category_new' => ['class' => ForeignField::className(), 'modelClass' => BookCategory::className(), 'null' => true, 'relatedName' => 'categories', 'editable' => false]];
 }