def populate_conferences(): for meeting, attrs in MEETING_DATA.iteritems(): meeting = meeting.strip() admin_emails = attrs.pop('admins', []) admin_objs = [] for email in admin_emails: try: user = User.find_one(Q('username', 'iexact', email)) admin_objs.append(user) except ModularOdmException: raise RuntimeError('Username {0!r} is not registered.'.format(email)) conf = Conference( endpoint=meeting, admins=admin_objs, **attrs ) try: conf.save() except ModularOdmException: conf = Conference.find_one(Q('endpoint', 'eq', meeting)) for key, value in attrs.items(): setattr(conf, key, value) conf.admins = admin_objs changed_fields = conf.save() if changed_fields: print('Updated {}: {}'.format(meeting, changed_fields)) else: print('Added new Conference: {}'.format(meeting))
def add_conference(endpoint, name, active, admins, info_url=None, logo_url=None, public_projects=None): try: admin_users = [ User.find_one(Q('username', 'iexact', admin)) for admin in admins ] except ModularOdmException: raise RuntimeError( "Admin must be a current registered user on the OSF.") conf = Conference(endpoint=endpoint, name=name, active=active, info_url=info_url, logo_url=logo_url, admins=admin_users) try: conf.save() except ModularOdmException: raise RuntimeError("Conference already exists.")
def populate_conferences(): for meeting, attrs in MEETING_DATA.iteritems(): meeting = meeting.strip() admin_emails = attrs.pop('admins') admin_objs = [] for email in admin_emails: try: user = User.find_one(Q('username', 'iexact', email)) admin_objs.append(user) except ModularOdmException: raise RuntimeError('Username {0!r} is not registered.'.format(email)) conf = Conference( endpoint=meeting, admins=admin_objs, **attrs ) try: conf.save() except ModularOdmException: print('{0} Conference already exists. Updating existing record...'.format(meeting)) conf = Conference.find_one(Q('endpoint', 'eq', meeting)) for key, value in attrs.items(): setattr(conf, key, value) conf.admins = admin_objs changed_fields = conf.save() if changed_fields: print('Changed: {}'.format(changed_fields))
def populate_conferences(): for meeting, attrs in MEETING_DATA.iteritems(): meeting = meeting.strip() admin_emails = attrs.pop('admins', []) admin_objs = [] for email in admin_emails: try: user = User.find_one(Q('username', 'iexact', email)) admin_objs.append(user) except ModularOdmException: raise RuntimeError('Username {0!r} is not registered.'.format(email)) custom_fields = attrs.pop('field_names', {}) conf = Conference( endpoint=meeting, admins=admin_objs, **attrs ) conf.field_names.update(custom_fields) try: conf.save() except ModularOdmException: conf = Conference.find_one(Q('endpoint', 'eq', meeting)) for key, value in attrs.items(): if isinstance(value, dict): current = getattr(conf, key) current.update(value) setattr(conf, key, current) else: setattr(conf, key, value) conf.admins = admin_objs changed_fields = conf.save() if changed_fields: print('Updated {}: {}'.format(meeting, changed_fields)) else: print('Added new Conference: {}'.format(meeting))
def populate_conferences(): for meeting, attrs in MEETING_DATA.iteritems(): meeting = meeting.strip() admin_emails = attrs.pop("admins") admin_objs = [] for email in admin_emails: try: user = User.find_one(Q("username", "iexact", email)) admin_objs.append(user) except ModularOdmException: raise RuntimeError("Username {0!r} is not registered.".format(email)) conf = Conference(endpoint=meeting, admins=admin_objs, **attrs) try: conf.save() except ModularOdmException: print("{0} Conference already exists. Updating existing record...".format(meeting)) conf = Conference.find_one(Q("endpoint", "eq", meeting)) for key, value in attrs.items(): setattr(conf, key, value) conf.admins = admin_objs changed_fields = conf.save() if changed_fields: print("Changed: {}".format(changed_fields)) else: print("Added new Conference: {}".format(meeting))
def form_valid(self, form): custom_fields, data = get_custom_fields(form.cleaned_data) endpoint = data.pop('endpoint') self.kwargs.setdefault('endpoint', endpoint) # Form validation already checks emails for existence admin_users = get_admin_users(data.pop('admins')) # Form validation already catches if a conference endpoint exists new_conf = Conference(endpoint=endpoint, admins=admin_users, **data) new_conf.field_names.update(custom_fields) new_conf.save() return super(MeetingCreateFormView, self).form_valid(form)
def form_valid(self, form): custom_fields, data = get_custom_fields(form.cleaned_data) endpoint = data.pop("endpoint") self.kwargs.setdefault("endpoint", endpoint) # Form validation already checks emails for existence admin_users = get_admin_users(data.pop("admins")) # Form validation already catches if a conference endpoint exists new_conf = Conference(endpoint=endpoint, admins=admin_users, **data) new_conf.field_names.update(custom_fields) new_conf.save() return super(MeetingCreateFormView, self).form_valid(form)
def populate_conferences(): for meeting, attrs in MEETING_DATA.iteritems(): conf = Conference(endpoint=meeting, **attrs) try: conf.save() except ModularOdmException: print('{0} Conference already exists. Updating existing record...'. format(meeting)) conf = Conference.find_one(Q('endpoint', 'eq', meeting)) for key, value in attrs.items(): setattr(conf, key, value) conf.save()
def populate_conferences(): for meeting, attrs in MEETING_DATA.iteritems(): conf = Conference( endpoint=meeting, **attrs ) try: conf.save() except ModularOdmException: print('{0} Conference already exists. Updating existing record...'.format(meeting)) conf = Conference.find_one(Q('endpoint', 'eq', meeting)) for key, value in attrs.items(): setattr(conf, key, value) conf.save()
def populate_conferences(dev=False): if dev: Conference.remove() date_format = '%b %d %Y' for meeting, attrs in MEETING_DATA.iteritems(): meeting = meeting.strip() admin_emails = attrs.pop('admins', []) admin_objs = [] if not dev: for email in admin_emails: try: user = User.find_one(Q('username', 'iexact', email)) admin_objs.append(user) except ModularOdmException: raise RuntimeError('Username {0!r} is not registered.'.format(email)) # Convert string into datetime object try: attrs['end_date'] = datetime.strptime(attrs.get('end_date'), date_format) attrs['start_date'] = datetime.strptime(attrs.get('start_date'), date_format) except TypeError: print '** Meeting {} does not have a start or end date. **'.format(meeting) custom_fields = attrs.pop('field_names', {}) conf = Conference( endpoint=meeting, admins=admin_objs, **attrs ) conf.field_names.update(custom_fields) try: conf.save() except ModularOdmException: conf = Conference.find_one(Q('endpoint', 'eq', meeting)) for key, value in attrs.items(): if isinstance(value, dict): current = getattr(conf, key) current.update(value) setattr(conf, key, current) else: setattr(conf, key, value) conf.admins = admin_objs changed_fields = conf.save() if changed_fields: print('Updated {}: {}'.format(meeting, changed_fields)) else: print('Added new Conference: {}'.format(meeting))
def populate_conferences(email): for meeting, attrs in MEETING_DATA.iteritems(): admin_objs = [] try: user = User.find_one(Q('username', 'iexact', email)) admin_objs.append(user) except ModularOdmException: raise RuntimeError('Username {0!r} is not registered.'.format(email)) conf = Conference( endpoint=meeting, admins=admin_objs, **attrs ) try: conf.save() except ModularOdmException: print('{0} Conference already exists. Updating existing record...'.format(meeting)) conf = Conference.find_one(Q('endpoint', 'eq', meeting)) for key, value in attrs.items(): setattr(conf, key, value) conf.admins = admin_objs conf.save()
def add_conference(endpoint, name, active, admins, info_url=None, logo_url=None, public_projects=None): try: admin_users = [ User.find_one(Q('username', 'iexact', admin)) for admin in admins ] except ModularOdmException: raise RuntimeError("Admin must be a current registered user on the OSF.") conf = Conference( endpoint=endpoint, name=name, active=active, info_url=info_url, logo_url=logo_url, admins=admin_users ) try: conf.save() except ModularOdmException: raise RuntimeError("Conference already exists.")
def populate_conferences(): for meeting, attrs in MEETING_DATA.iteritems(): custom_fields = attrs.pop('field_names', {}) conf = Conference(endpoint=meeting, **attrs) conf.field_names.update(custom_fields) try: conf.save() except ModularOdmException: conf = Conference.find_one(Q('endpoint', 'eq', meeting)) for key, value in attrs.items(): if isinstance(value, dict): current = getattr(conf, key) current.update(value) setattr(conf, key, current) else: setattr(conf, key, value) changed_fields = conf.save() if changed_fields: print('Updated {}: {}'.format(meeting, changed_fields)) else: print('Added new Conference: {}'.format(meeting))
def populate_conferences(): for meeting, attrs in MEETING_DATA.iteritems(): custom_fields = attrs.pop("field_names", {}) conf = Conference(endpoint=meeting, **attrs) conf.field_names.update(custom_fields) try: conf.save() except ModularOdmException: conf = Conference.find_one(Q("endpoint", "eq", meeting)) for key, value in attrs.items(): if isinstance(value, dict): current = getattr(conf, key) current.update(value) setattr(conf, key, current) else: setattr(conf, key, value) changed_fields = conf.save() if changed_fields: print("Updated {}: {}".format(meeting, changed_fields)) else: print("Added new Conference: {}".format(meeting))