Просмотр исходного кода

Teams/Organizations part 1, in progress. Add table: org

Thanks to xet7 !

Related  #802
Lauri Ojansivu 5 лет назад
Родитель
Сommit
2cedbcb9b3
5 измененных файлов с 127 добавлено и 0 удалено
  1. 1 0
      .meteor/packages
  2. 1 0
      .meteor/versions
  3. 1 0
      models/counters.js
  4. 121 0
      models/org.js
  5. 3 0
      server/migrations.js

+ 1 - 0
.meteor/packages

@@ -93,3 +93,4 @@ meteorhacks:picker
 lamhieu:unblock
 meteorhacks:aggregate@1.3.0
 wekan-markdown
+konecty:mongo-counter

+ 1 - 0
.meteor/versions

@@ -79,6 +79,7 @@ kadira:blaze-layout@2.3.0
 kadira:dochead@1.5.0
 kadira:flow-router@2.12.1
 kenton:accounts-sandstorm@0.7.0
+konecty:mongo-counter@0.0.5_3
 lamhieu:meteorx@2.0.1
 lamhieu:unblock@1.0.0
 launch-screen@1.1.1

+ 1 - 0
models/counters.js

@@ -0,0 +1 @@
+Counters = new Mongo.Collection('counters');

+ 121 - 0
models/org.js

@@ -0,0 +1,121 @@
+Org = new Mongo.Collection('org');
+
+/**
+ * A Organization in wekan
+ */
+Org.attachSchema(
+  new SimpleSchema({
+    id: {
+      /**
+       * the organization id
+       */
+      type: Number,
+      optional: true,
+      // eslint-disable-next-line consistent-return
+      autoValue() {
+        if (this.isInsert && !this.isSet) {
+          return incrementCounter('counters', 'org_id', 1);
+        }
+      },
+    },
+    version: {
+      /**
+       * the version of the organization
+       */
+      type: Number,
+      optional: true,
+    },
+    name: {
+      /**
+       * name of the organization
+       */
+      type: String,
+      optional: true,
+      max: 190,
+    },
+    address1: {
+      /**
+       * address1 of the organization
+       */
+      type: String,
+      optional: true,
+      max: 255,
+    },
+    address2: {
+      /**
+       * address2 of the organization
+       */
+      type: String,
+      optional: true,
+      max: 255,
+    },
+    city: {
+      /**
+       * city of the organization
+       */
+      type: String,
+      optional: true,
+      max: 255,
+    },
+    state: {
+      /**
+       * state of the organization
+       */
+      type: String,
+      optional: true,
+      max: 255,
+    },
+    zip_code: {
+      /**
+       * zip_code of the organization
+       */
+      type: String,
+      optional: true,
+      max: 50,
+    },
+    country: {
+      /**
+       * country of the organization
+       */
+      type: String,
+      optional: true,
+      max: 255,
+    },
+    billing_email: {
+      /**
+       * billing_email of the organization
+       */
+      type: String,
+      optional: true,
+      max: 255,
+    },
+    createdAt: {
+      /**
+       * creation date of the organization
+       */
+      type: Date,
+      // eslint-disable-next-line consistent-return
+      autoValue() {
+        if (this.isInsert) {
+          return new Date();
+        } else {
+          this.unset();
+        }
+      },
+    },
+    modifiedAt: {
+      type: Date,
+      denyUpdate: false,
+      // eslint-disable-next-line consistent-return
+      autoValue() {
+        if (this.isInsert || this.isUpsert || this.isUpdate) {
+          return new Date();
+        } else {
+          this.unset();
+        }
+      },
+    },
+  }),
+);
+
+export default Org;

+ 3 - 0
server/migrations.js

@@ -17,6 +17,7 @@ import Swimlanes from '../models/swimlanes';
 import Triggers from '../models/triggers';
 import UnsavedEdits from '../models/unsavedEdits';
 import Users from '../models/users';
+import Org from '../models/org';
 
 // Anytime you change the schema of one of the collection in a non-backward
 // compatible way you have to write a migration in this file using the following
@@ -703,6 +704,7 @@ const firstBatchOfDbsToAddCreatedAndUpdated = [
   Swimlanes,
   Triggers,
   UnsavedEdits,
+  Org,
 ];
 
 firstBatchOfDbsToAddCreatedAndUpdated.forEach(db => {
@@ -737,6 +739,7 @@ const modifiedAtTables = [
   Triggers,
   UnsavedEdits,
   Users,
+  Org,
 ];
 
 Migrations.add('add-missing-created-and-modified', () => {