Ejemplo n.º 1
0
    def _wizcb_submit_hdl(wiz, em, step, act, val, req):
        xcls = cls
        if isinstance(xcls, str):
            xcls = _name_to_class(xcls)

        sess = DBSession()

        fieldIDs = json.loads(val['field_id'])
        templateName = val['template']
        templId = val['templ_id']

        for fid in fieldIDs:
            resvalue = {
                'templ_id':
                templId,
                'field_id':
                fid,
                'template':
                templateName,
                'field':
                sess.query(PDNSFieldType).filter(
                    PDNSFieldType.id == fid).first()
            }
            em = ExtModel(xcls)
            obj = xcls()
            em.set_values(obj, resvalue, req, True)
            sess.add(obj)
            sess.flush()
            print("TROLOLO")
        return {'do': 'close', 'reload': True}
Ejemplo n.º 2
0
	def get_cfg(self, model, req, **kwargs):
		if isinstance(self.model, str):
			self.model = ExtModel(_name_to_class(self.model))
		ret = []
		col = self.model.get_column(self.field)
		colfld = col.get_editor_cfg(req, in_form=True, initval=self.value)
		if colfld:
			colfld['name'] = self.name
			coldef = col.default(req)
			if (kwargs.get('use_defaults', False)) and (coldef is not None) and (not self.value):
				colfld['value'] = coldef
			if self.extra_config:
				colfld.update(self.extra_config)
			ret = [colfld]
			extra = col.append_field()
			while extra:
				ecol = self.model.get_column(extra)
				ecolfld = ecol.get_editor_cfg(req, in_form=True, initval=self.value)
				if ecolfld:
					ecoldef = ecol.default(req)
					if (kwargs.get('use_defaults', False)) and (ecoldef is not None) and (not self.value):
						ecolfld['value'] = ecoldef
					ret.append(ecolfld)
					extra = ecol.append_field()
				else:
					break
			return ret
Ejemplo n.º 3
0
	def _wizcb_submit_hdl(wiz, em, step, act, val, req):
		xcls = cls
		if isinstance(xcls, str):
			xcls = _name_to_class(xcls)

		sess = DBSession()
		cfg = get_current_registry().settings
	
		fieldIDs = json.loads(val['field_id'])
		fieldlist = val['field']
		templateName = val['template']
		templId = val['templ_id']

		for fid in fieldIDs:
			resvalue = {'templ_id' : templId, 
						'field_id' : fid, 
						'template' : templateName, 
						'field'    : sess.query(PDNSFieldType).filter(PDNSFieldType.id==fid).first()
						}
			em = ExtModel(xcls)
			obj = xcls()
			em.set_values(obj, resvalue, req, True)
			sess.add(obj)
			sess.flush()
			print("TROLOLO")
		return {
			'do'     : 'close',
			'reload' : True
			}
Ejemplo n.º 4
0
 def get_cfg(self, model, req, **kwargs):
     if isinstance(self.model, str):
         self.model = ExtModel(_name_to_class(self.model))
     ret = []
     col = self.model.get_column(self.field)
     colfld = col.get_editor_cfg(req, in_form=True, initval=self.value)
     if colfld:
         colfld['name'] = self.name
         coldef = col.default(req)
         if (kwargs.get('use_defaults',
                        False)) and (coldef
                                     is not None) and (not self.value):
             colfld['value'] = coldef
         if self.extra_config:
             colfld.update(self.extra_config)
         ret = [colfld]
         extra = col.append_field()
         while extra:
             ecol = self.model.get_column(extra)
             ecolfld = ecol.get_editor_cfg(req,
                                           in_form=True,
                                           initval=self.value)
             if ecolfld:
                 ecoldef = ecol.default(req)
                 if (kwargs.get('use_defaults', False)) and (
                         ecoldef is not None) and (not self.value):
                     ecolfld['value'] = ecoldef
                 ret.append(ecolfld)
                 extra = ecol.append_field()
             else:
                 break
         return ret
Ejemplo n.º 5
0
	def _wizcb_submit_hdl(wiz, em, step, act, val, req):
		xcls = cls
		if isinstance(xcls, str):
			xcls = _name_to_class(xcls)
		sess = DBSession()
		em = ExtModel(xcls)
		obj = xcls()
		em.set_values(obj, val, req, True)
		sess.add(obj)
		return {
			'do'     : 'close',
			'reload' : True
		}
Ejemplo n.º 6
0
	def _wizcb_submit_hdl(wiz, em, step, act, val, req):
		xcls = cls
		if isinstance(xcls, str):
			xcls = _name_to_class(xcls)

		sess = DBSession()
		cfg = get_current_registry().settings
		mailer = get_mailer(req)

		userIDs = json.loads(val['userid'])
		userlist = val['user']
		templateName = val['template']
		templId = val['templid']
		receiver = None
		sender = cfg.get('netprofile.mailing.sender', '*****@*****.**')
		sendername = cfg.get('sender.name', 'localadmin')
		mailhost = cfg.get('mail.host', 'localhost')

		for userid in userIDs:
			resvalue = {'userid' : userid}
			user = sess.query(AccessEntity).filter(AccessEntity.id==userid).first()
			subscr = sess.query(MailingSubscription).filter(MailingSubscription.userid==userid).first()
		
    		#a long try-except statement to check if user is in mailing list
			try:
				if subscr.issubscribed is True:
					templateBody = sess.query(MailingTemplate).filter(MailingTemplate.id==templId).first().body
					resvalue['user'] = user
					resvalue['template'] = templateBody
					resvalue['templid'] = templId
		
					if user.parent:
						try:
							receiver = user.parent.email
						except AttributeError:
							#raise error here
							print("################### USER'S PARENT HAVE NO EMAIL ATTRIBUTE #######################")
	
					if receiver is not None:
						msg_text = Attachment(data=templateBody,
											  content_type='text/plain; charset=\'utf-8\'',
											  disposition='inline',
											  transfer_encoding='quoted-printable'
											  )
						msg_html = Attachment(data=templateBody,
											  content_type='text/html; charset=\'utf-8\'',
											  disposition='inline',
											  transfer_encoding='quoted-printable'
											  )
						message = Message(
							subject=(templateName),
							sender=sender,
							recipients=(receiver,),
							body=msg_text,
							html=msg_html
							)

						mailer.send(message)
						resvalue['letteruid'] = hashlib.md5((templateBody + user.nick + str(datetime.datetime.now())).encode()).hexdigest()
						em = ExtModel(xcls)
						obj = xcls()
						em.set_values(obj, resvalue, req, True)
						sess.add(obj)
						sess.flush()
					else:
						print("################### USER HAVE NO EMAIL #######################")

			except AttributeError:
				print("########################## USER NOT IN SUBSCR LIST ###########################")

		return {
			'do'     : 'close',
			'reload' : True
			}