Blame view

imports/collections/students/index.js 4.05 KB
d0a93cc6d   Deepak   csv file
1
  // import {Students } from '/imports/collections/students/index'
39d8f536d   Deepak   some more cleamup
2
3
4
5
6
7
8
  
  import _                                  from 'lodash';
  import { Meteor }                         from 'meteor/meteor';
  import { Mongo }                          from 'meteor/mongo';
  import { SimpleSchema }                   from 'meteor/aldeed:simple-schema';
  
  import { Orgs }                           from '/imports/collections/orgs/index';
d0099dd88   Deepak   student detail pa...
9
  import { Users }                          from '/imports/collections/users/index';
39d8f536d   Deepak   some more cleamup
10

d0099dd88   Deepak   student detail pa...
11
  class Student {
39d8f536d   Deepak   some more cleamup
12
13
14
    constructor(doc) {
      _.assign(this, doc);
    };
d0099dd88   Deepak   student detail pa...
15
16
    getUserIds() {
      return _.filter(_.map(this.users, 'userId'));
39d8f536d   Deepak   some more cleamup
17
18
    };
  };
d0099dd88   Deepak   student detail pa...
19
20
21
22
23
24
25
26
27
  export { Student };
  
  class StudentsCollection extends Mongo.Collection {
    insert(item, callback) {
      _.assign(item, {
        createdAt:        new Date().getTime(),
      });
      return super.insert(item, callback);
    };
39d8f536d   Deepak   some more cleamup
28
  };
d0099dd88   Deepak   student detail pa...
29
30
31
  export const Students = new StudentsCollection('Students', {
    transform: (item) => {
      return new Student(item);
39d8f536d   Deepak   some more cleamup
32
    },
d0099dd88   Deepak   student detail pa...
33
  });
39d8f536d   Deepak   some more cleamup
34

d0099dd88   Deepak   student detail pa...
35
36
37
38
39
  _.assign(Students, {
    allStudents: () => {
      const user = Users.current();
      if(!user) return null;
      return Orgs.find({'users.userId': user._id});
39d8f536d   Deepak   some more cleamup
40
    },
d0099dd88   Deepak   student detail pa...
41
42
43
44
45
46
47
48
49
    current: () => {
      const user = Users.current();
      if(!user) return null;
      return Orgs.findOne({_id: user.orgId});
    },
    currentOrgUsers: () => {
      const OrgsArr = Orgs.current();
      if(!OrgsArr) return null;
      return OrgsArr.users;
39d8f536d   Deepak   some more cleamup
50
    },
d0099dd88   Deepak   student detail pa...
51
  });
39d8f536d   Deepak   some more cleamup
52

d0099dd88   Deepak   student detail pa...
53
  Students.deny({
39d8f536d   Deepak   some more cleamup
54
55
56
57
    insert() { return true; },
    update() { return true; },
    remove() { return true; },
  });
39d8f536d   Deepak   some more cleamup
58

d0099dd88   Deepak   student detail pa...
59
60
  Students.schema = new SimpleSchema({
    userId:               { type: String },
39d8f536d   Deepak   some more cleamup
61
    orgId:                { type: String },
9db2d9cbe   Deepak   fixed error in cs...
62
    admissionId:          { type: String, optional: true },
39d8f536d   Deepak   some more cleamup
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
    enrollmentDate:       { type: String, optional: true },
    address:              { type: String, optional: true },
    prefix:               { type: String, optional: true },
    firstName:            { type: String, optional: true },
    middlename:           { type: String, optional: true },
    lastName:             { type: String, optional: true },
    gender:               { type: String, optional: true },
    dob:                  { type: String, optional: true },
    rollNo:               { type: String, optional: true },
    class:                { type: String, optional: true },
    section:              { type: String, optional: true },
    bloodGroup:           { type: String, optional: true },
    community:            { type: String, optional: true },
    nationality:          { type: String, optional: true },
    motherTongue:         { type: String, optional: true },
39d8f536d   Deepak   some more cleamup
78
79
80
81
82
83
84
85
86
87
    religion:             { type: String, optional: true },
    permanentAddress: {
      type: new SimpleSchema({
        home:             { type: String, optional: true },
        street:           { type: String, optional: true },
        town:             { type: String, optional: true },
        city:             { type: String, optional: true },
        state:            { type: String, optional: true },
        zip:              { type: String, optional: true },
      }),
d0099dd88   Deepak   student detail pa...
88
      optional: true
39d8f536d   Deepak   some more cleamup
89
90
91
92
    },
    parent: {
      type: [new SimpleSchema({
        id:               { type: String, },
609f1956b   Deepak   fixed views for d...
93
        relationship:     { type: String, },
39d8f536d   Deepak   some more cleamup
94
      })],
d0099dd88   Deepak   student detail pa...
95
      optional: true
39d8f536d   Deepak   some more cleamup
96
97
98
99
    },
    prevInstitute: {
      type: [new SimpleSchema({
        name:             { type: String, },
1c4a8cc5d   Deepak   added parents dat...
100
101
        fromYear:         { type: String, },
        toYear:           { type: String, },
167dd6325   satheesh   [#004]-Revised Sc...
102
103
        fromClass:        { type: String, },
        toClass:          { type: String, },
39d8f536d   Deepak   some more cleamup
104
105
106
      })],
      optional: true
    },
39d8f536d   Deepak   some more cleamup
107
108
109
110
111
112
113
114
115
116
117
    services: {
      type: Object,
      optional: true,
      blackbox: true,
    },
  
    isMetaUser:           { type: Boolean, optional: true },
  
    createdAt:            { type: Date, autoValue: function(){return new Date();}}
  
  });
d0099dd88   Deepak   student detail pa...
118
  Students.attachSchema(Students.schema);
39d8f536d   Deepak   some more cleamup
119

d0099dd88   Deepak   student detail pa...
120
  Students.privateFields = {
39d8f536d   Deepak   some more cleamup
121
122
123
124
125
126
127
128
129
130
131
    orgId:              1,
    address:            1,
  
    firstName:          1,
    lastName:           1,
    emails:             1,
    phones:             1,
  
    isMetaUser:         1,
    createdAt:          1,
  };
d0099dd88   Deepak   student detail pa...
132
  Students.publicFields = {
39d8f536d   Deepak   some more cleamup
133
134
135
136
137
138
    firstName:          1,
    lastName:           1,
    emails:             1,
  
    createdAt:          1,
  };