Example #1
0
def get_properties(context, prop, prop_name):
    msgid = _(u"not_available")
    not_avaiable = context.translate(msgid)
    try:
        return prop[prop_name]
    except:
        return not_avaiable
Example #2
0
 def secondarykeys_processing(self, jsondata):
     msgid = _(u"not_available")
     not_available = self.context.translate(msgid)
     
     table_ids = ["keyName","key"]
     
     return update_dossiers(jsondata, table_ids, not_available, has_address=False)
Example #3
0
    def get_documents(self):
        documents_url = '%s%s%s/documents' % (self.novac_url, PUBLIC_FODLER_WS, self.id_dossier)

        json_from_ws = self.called_ws(documents_url)
        if not json_from_ws:
            self.logger.error('Not able to call ws %s' % documents_url)
            msg_error = _(u'Not able to call ws')
            return [msg_error]

        jsondata = json_processing(json_from_ws)
        if not jsondata:
            msg_error = _(u'Not able to read this json')
            self.logger.error('%s : %s' % (msg_error, jsondata))
            return [msg_error]

        return self.documents_processing(jsondata)
Example #4
0
 def utils_url(self):
     error = False
     msg_error = ""
     if not self.novac_url:
         error=True
         msg_error=_(u'No url for cirb.novac.novac_url')        
         
     return {'novac_url':self.novac_url,              
             'error':error,
             'msg_error':msg_error}
Example #5
0
def call_put_url(request_url, request_headers, data): # request_headers is a dict
    logger = logging.getLogger('cirb.novac.utils.call_put_url')
    oldtimeout = socket.getdefaulttimeout()
    results = ''
    url = request_url
    try:
        opener = urllib2.build_opener(urllib2.HTTPHandler)
        socket.setdefaulttimeout(7) # let's wait 7 sec        
        request = urllib2.Request(url, data=data)
        for header in request_headers:
            try:
                request.add_header(header.keys()[0], header.values()[0])
            except:
                logger.error(_('headers bad formated'))
        request.get_method = lambda: 'PUT'
        results = opener.open(request).read()
    except HTTPError, e:
        exception = _('The server couldn\'t fulfill the request. Error code: %s. Url: %s' % (e.code, url))
        logger.error(exception)
        return False
Example #6
0
 def dossier_processing(self, jsondata):
     msgid = _(u"not_available")
     not_available = self.context.translate(msgid)
     print jsondata
     table_ids = ["id","refNova","typeDossier","object","streetName",
                      "numberFrom", "numberTo","zipcode", "municipality",
                      "publicInquiry","startPublicInquiry","endPublicInquiry",
                      "statusPermit","codeDossier", "pointCC","dateCC",
                      "languageRequest","dateDossierComplet","specificReference", 
                      "municipalityOwner", "manager", "dateActivationPSK"]
     
     return update_dossiers(jsondata, table_ids, not_available, has_address=True)
Example #7
0
 def listprivate(self):
     self.portal_state = getMultiAdapter((self.context, self.request),
                                         name=u'plone_portal_state')
     user = get_user(self.request, self.context)
     if not user:
         msg_error = _('User undefined.')
         return self.listprivate_error(msg_error)
     results = {}
     results['user'] = user['name']
     results['error'] = False
     results['novac_url'] = self.novac_url
     
     return results        
Example #8
0
def called_url(request_url, request_headers, params=''): # for exemple : content_type = application/xml
    """
    """
    oldtimeout = socket.getdefaulttimeout()
    results = ''
    url = request_url
    if params:
        url = '%s?%s' % (url, params)
    try:
        socket.setdefaulttimeout(7) # let's wait 7 sec        
        request = urllib2.Request(url)
        for header in request_headers:
            try:
                request.add_header(header.keys()[0], header.values()[0])
            except:
                logger.info(_('headers bad formated'))
        opener = urllib2.build_opener()
        results = opener.open(request).read()
    except HTTPError, e:
        exception = _('The server couldn\'t fulfill the request. Error code: %s. Url: %s' % (e.code, url))
        logger.error(exception)
        return False
Example #9
0
    def public(self):
        error = False
        try:
            num_dossier = self.request.form.get("id")
        except:
            msg_error = u"Not num_dossier in url (GET)"
            return self.public_error(msg_error)

        url = "%s/%s/%s/" % (self.novac_url, PUB_DOSSIER, num_dossier)

        json_from_ws = self.call_ws(url)
        if not json_from_ws:
            msg_error = _(u"Not able to call this dossier : %s" % url)
            return self.public_error(msg_error)

        jsondata = json_processing(json_from_ws)
        if not jsondata:
            msg_error = _(u"Not able to read this json : %s" % jsondata)
            return self.public_error(msg_error)

        results = self.dossier_processing(jsondata)
        # data and celled_url used for test
        return {"data": jsondata, "results": results, "error": error, "called_url": url}
Example #10
0
 def dossier_processing(self, jsondata):
     msgid = _(u"not_available")
     not_available = self.context.translate(msgid)
     
     # in public novaRef instead of refNova
     table_ids = ["id","refNova","typeDossier","object","streetName",
                      "numberFrom", "numberTo","zipCode", "municipality",
                      "publicInquiry","startPublicInquiry","endPublicInquiry",
                      "statusPermit","codeDossier", "pointCC","dateCC",
                      "languageRequest","dateDossierComplet","dateNotifDecision",
                      "dateDeadline","municipalityOwner","specificReference", "isOwner", "x", "y",
                      "gestionnaire_Name", "gestionnaire_Phone", "gestionnaire_Email", "avisFd", "instance"]
     
     return Dossier(jsondata, table_ids, not_available, has_address=True, lang=self.context.Language())
Example #11
0
 def private(self):
     msg_error=''
     if not self.novac_url:
         msg_error=_(u'No url for novac url')
         return self.private_error(msg_error)
     elif not self.id_dossier:
         msg_error=_(u'No id folder in get method')
         return self.private_error(msg_error)
     dossier_url = '%s%s%s' % (self.novac_url, PRIVATE_FODLER_WS, self.id_dossier)
  
     json_from_ws = self.called_ws(dossier_url)
     if not json_from_ws:
         self.logger.error = ('Not able to call ws %s' % dossier_url)
         msg_error = _(u'Not able to call ws')
         return self.private_error(msg_error)
     
     jsondata = json_processing(json_from_ws)
     if not jsondata:
         msg_error = _(u'Not able to read this json : %s' % jsondata)
         return self.private_error(msg_error)
     
     results = self.dossier_processing(jsondata)
     results = update_municipality_owner(self.context, results)    
     
     # Historic of dossier
     history_url = '%s%s' % (dossier_url, HISTORY)
     history = self.called_ws(history_url)
     if not history:
         self.logger.info('Not able to call ws %s' % history_url)
         msg_error = _(u'Not able to call ws')
         return self.private_error(msg_error)
     
     jsonhistory = json_processing(history)
     if not jsonhistory:
         msg_error = _(u'Not able to read this json : %s' % jsonhistory)
         return self.private_error(msg_error)
     
     history_ids = ['consultationDate','keyName']
     historys = update_dossiers(jsonhistory, history_ids, "not_available", has_address=False)
     h_res = self.formated_history_date(historys)
     user = get_user(self.request, self.context)
     if not user:
         msg_error = _('User undefined.')
         return self.private_error(msg_error)
     results['user'] = user['name']
     results['jsondata'] = jsondata
     results['jsonhistory'] = jsonhistory
     results['error'] = False
     results['h_res'] = h_res
     return results
Example #12
0
    def dossier_processing(self, jsondata):
        msgid = _(u"not_available")
        not_available = self.context.translate(msgid)

        table_ids = [
            "id",
            "novaRef",
            "typeDossier",
            "object",
            "streetName",
            "numberFrom",
            "numberTo",
            "zipCode",
            "municipality",
            "publicInquiry",
            "startPublicInquiry",
            "endPublicInquiry",
            "statusPermit",
            "codeDossier",
            "pointCC",
            "dateCC",
            "languageRequest",
            "dateDossierComplet",
            "dateNotifDecision",
            "dateDeadline",
            "municipalityOwner",
            "specificReference",
            "instance",
        ]

        geometry = jsondata.get("geometry", None)
        if geometry:
            geo_results = Dossier(geometry, ["x", "y"], not_available, has_address=False)
        else:
            self.logger.error("public url return a no excpected json, no 'geometry' parameter")

        dossier = jsondata.get("properties", None)
        if dossier:
            dos_results = Dossier(dossier, table_ids, not_available, has_address=True)
        else:
            self.logger.error("public url return a no excpected json, no 'properties' parameter")

        dos_results = update_municipality_owner(self.context, dos_results)

        return dict(dos_results.items() + geo_results.items())
Example #13
0
 def activate_key(self):
     # TODO return 'Bad Key' if 500 is returned by ws
     key = urllib.quote_plus(self.request.form.get('key'))
     #query_string = self.request.environ['QUERY_STRING']
     #key = urllib.quote_plus(query_string.replace('key=',''))
     try:
         user = get_user(self.request, self.context)
     except:
         user = get_user(self.request)
     if not user:
         self.logger.error('User is not logged')
     self.logger.info("key : %s - user : %s" % (key, user['id']))
     activate_url = '%s%s%s&RNHEAD=%s' %(self.novac_url,ACTIVATION,key, user['id'])
     #activate_url = activate_url.encode('utf-8')
     headers = [{'Content-Type':'application/xml'}, {'RNHEAD':user['id']}, {'Accept-Language':'%s-be' % self.lang}]
     results = call_put_url(activate_url, headers, 'key=%s&RNHEAD=%s' % (key, user['id']))
     if not results:
         msg_error = _(u"Not able to activate a dossier.")
         return self.listprivate_error(msg_error)
     return {"error":True,}
Example #14
0
 def view_name(self):
     return _(u"Private")
Example #15
0
    try:
        socket.setdefaulttimeout(7) # let's wait 7 sec        
        request = urllib2.Request(url)
        for header in request_headers:
            try:
                request.add_header(header.keys()[0], header.values()[0])
            except:
                logger.info(_('headers bad formated'))
        opener = urllib2.build_opener()
        results = opener.open(request).read()
    except HTTPError, e:
        exception = _('The server couldn\'t fulfill the request. Error code: %s. Url: %s' % (e.code, url))
        logger.error(exception)
        return False
    except URLError, e:
        exception =  _('We failed to reach server %s.<br />Reason: %s' % (url, e.reason))
        logger.error(exception)
        return False
    finally:
        socket.setdefaulttimeout(oldtimeout)
    return results  


def call_put_url(request_url, request_headers, data): # request_headers is a dict
    logger = logging.getLogger('cirb.novac.utils.call_put_url')
    oldtimeout = socket.getdefaulttimeout()
    results = ''
    url = request_url
    try:
        opener = urllib2.build_opener(urllib2.HTTPHandler)
        socket.setdefaulttimeout(7) # let's wait 7 sec        
Example #16
0
 def view_name(self):
     return _(u"Public")
Example #17
0
 def view_name(self):
     return _(u"Listprivate")
Example #18
0
 def second_level(self):
     return _(u"Listprivate")