def do_import_corp_membership(self, corp_profile, corp_memb, action_info): """ Database import here - insert or update """ # handle corp_profile if not corp_profile: corp_profile = CorpProfile() self.assign_import_values_from_dict(corp_profile, action_info['corp_profile_action']) if corp_profile.status == None or corp_profile.status == '' or \ self.cmemb_data.get('status', '') == '': corp_profile.status = True if not corp_profile.status_detail: corp_profile.status_detail = 'active' else: corp_profile.status_detail = corp_profile.status_detail.lower() if not corp_profile.creator: corp_profile.creator = self.request_user corp_profile.creator_username = self.request_user.username if not corp_profile.owner: corp_profile.owner = self.request_user corp_profile.owner_username = self.request_user.username corp_profile.save() # corpmembership if not corp_memb: corp_memb = CorpMembership( corp_profile=corp_profile, creator=self.request_user, creator_username=self.request_user.username, owner=self.request_user, owner_username=self.request_user.username, ) self.assign_import_values_from_dict(corp_memb, action_info['corp_memb_action']) if corp_memb.status == None or corp_memb.status == '' or \ self.cmemb_data.get('status', '') == '': corp_memb.status = True if not corp_memb.status_detail: corp_memb.status_detail = 'active' else: corp_memb.status_detail = corp_memb.status_detail.lower() # set to approved for active memberships if not corp_memb.approved: if corp_memb.status and corp_memb.status_detail == 'active': corp_memb.approved = True # corporate membership type if not hasattr(corp_memb, "corporate_membership_type") or \ not corp_memb.corporate_membership_type: # last resort - pick the first available membership type corp_memb.corporate_membership_type = CorporateMembershipType.objects.all( ).order_by('id')[0] # no join_dt - set one if not hasattr(corp_memb, 'join_dt') or not corp_memb.join_dt: if corp_memb.status and corp_memb.status_detail == 'active': corp_memb.join_dt = datetime.now() # no expire_dt - get it via corporate_membership_type if not hasattr(corp_memb, 'expiration_dt') or not corp_memb.expiration_dt: if corp_memb.corporate_membership_type: expiration_dt = corp_memb.corporate_membership_type.get_expiration_dt( join_dt=corp_memb.join_dt) setattr(corp_memb, 'expiration_dt', expiration_dt) if not corp_memb.creator: corp_memb.creator = self.request_user corp_memb.creator_username = self.request_user.username if not corp_memb.owner: corp_memb.owner = self.request_user corp_memb.owner_username = self.request_user.username corp_memb.save() # bind members to their corporations by company names if self.mimport.bind_members: self.bind_members_to_corp_membership(corp_memb)