示例#1
0
def displayAddUser(doctype):
    """Display controls for adding users"""
    t = ""
    # start displaying the table which will contain the add form
    t += """
    <table class="searchbox" summary="">
        <tr>
            <th class="portalboxheader">Add</th>
        </tr>
        <tr>
            <td>
    User:<br/>"""
    users = list_registered_users()
    if len(users) < 20:
        numrows = len(users)
    else:
        numrows = 20
    t += '<select multiple="multiple" name="addusers" size="%s">' % numrows
    for user in users:
        if user[1] != "":
            t += '<option value="%s">%s</option>' % (user[0], user[1])
    t += '</select><br/>'
    t += '<select name="categ">'
    t += '<option value="*">All categories</option>'
    res = run_sql("select lname,sname FROM sbmCATEGORIES WHERE doctype=%s ORDER BY lname", (doctype,))
    for row in res:
        t += '<option value="%s">%s</option>' % (row[1], row[0])
    t += '</select><br/>'
    t += '''<input class="adminbutton" type="button" onclick="document.forms[0].todo.value='adduser';document.forms[0].submit();" value="ADD" />'''
    t += '</td></tr></table>'
    return t
示例#2
0
def get_new_ticket_RT_info(uid, recId):
    response = {}
    response['resultCode'] = 0
    if BIBCATALOG_SYSTEM is None:
        response['description'] = "<!--No ticket system configured-->"
    elif BIBCATALOG_SYSTEM and uid:
        bibcat_resp = BIBCATALOG_SYSTEM.check_system(uid)
        if bibcat_resp == "":
            # add available owners
            users = []
            users_list = list_registered_users()
            for user_tuple in users_list:
                try:
                    user = {'username': get_user_preferences(user_tuple[0])['bibcatalog_username'],
                        'id': user_tuple[0]}
                except KeyError:
                    continue
                users.append(user)
            response['users'] = users
            # add available queues
            response['queues'] = BIBCATALOG_SYSTEM.get_queues(uid)
            # add user email
            response['email'] = get_email(uid)
            # TODO try catch
            response['ticketTemplates'] = load_ticket_templates(recId)
            response['resultCode'] = 1
        else:
            # put something in the tickets container, for debug
            response['description'] = "Error connecting to RT<!--" + bibcat_resp + "-->"
    return response
示例#3
0
def displayAddUser(doctype):
    """Display controls for adding users"""
    t = ""
    # start displaying the table which will contain the add form
    t += """
    <table class="searchbox" summary="">
        <tr>
            <th class="portalboxheader">Add</th>
        </tr>
        <tr>
            <td>
    User:<br/>"""
    users = list_registered_users()
    if len(users) < 20:
        numrows = len(users)
    else:
        numrows = 20
    t += '<select multiple="multiple" name="addusers" size="%s">' % numrows
    for user in users:
        if user[1] != "":
            t += '<option value="%s">%s</option>' % (user[0], user[1])
    t += '</select><br/>'
    t += '<select name="categ">'
    t += '<option value="*">All categories</option>'
    res = run_sql(
        "select lname,sname FROM sbmCATEGORIES WHERE doctype=%s ORDER BY lname",
        (doctype, ))
    for row in res:
        t += '<option value="%s">%s</option>' % (row[1], row[0])
    t += '</select><br/>'
    t += '''<input class="adminbutton" type="button" onclick="document.forms[0].todo.value='adduser';document.forms[0].submit();" value="ADD" />'''
    t += '</td></tr></table>'
    return t
示例#4
0
def get_new_ticket_RT_info(uid, recId):
    response = {}
    response['resultCode'] = 0
    if BIBCATALOG_SYSTEM is None:
        response['description'] = "<!--No ticket system configured-->"
    elif BIBCATALOG_SYSTEM and uid:
        bibcat_resp = BIBCATALOG_SYSTEM.check_system(uid)
        if bibcat_resp == "":
            # add available owners
            users = []
            users_list = list_registered_users()
            for user_tuple in users_list:
                try:
                    user = {
                        'username':
                        get_user_preferences(
                            user_tuple[0])['bibcatalog_username'],
                        'id':
                        user_tuple[0]
                    }
                except KeyError:
                    continue
                users.append(user)
            response['users'] = users
            # add available queues
            response['queues'] = BIBCATALOG_SYSTEM.get_queues(uid)
            # add user email
            response['email'] = get_email(uid)
            # TODO try catch
            response['ticketTemplates'] = load_ticket_templates(recId)
            response['resultCode'] = 1
        else:
            # put something in the tickets container, for debug
            response[
                'description'] = "Error connecting to RT<!--" + bibcat_resp + "-->"
    return response
    def tmpl_user_list(self, ln=CFG_SITE_LANG): #TP: cele..
        """
        Generates a list of available collections statistics.
        """
        assignedUsers = list()
        out = ""

        #TP: nakreslim oddil pro kazdeho strukturatora
        for supervisor in cfg_supervisors_groups:
          out += """<h3>Supervisor %s (#%s)</h3><ul class="supervisor_usersOverview">""" % (get_email(supervisor),supervisor)
          assignedUsers.append(supervisor)

          #TP: nakreslim linky a hlavni info pro kazdeho uzivatele
          for user in cfg_supervisors_groups[int(supervisor)]:
            assignedUsers.append(user)
#            &timespan=last+month&s_date=01%2F29%2F2013+00%3A00&f_date=01%2F29%2F2013+09%3A28&format=flot&ids=cardStructured&cols0=UID&col_value0=tomas&action_gen=Generate
            out += """<li><a class="uNameLink" href="%(site_url)s/supervisors/customevent?ln=%(ln)s&timespan=last+month&format=flot&ids=cardStructured&cols0=UID&col_value0=%(user)s&action_gen=Generate">%(email)s</a>"""  \
                        % {'site_url': CFG_SITE_URL, 'email': get_email(user), 'ln': CFG_SITE_LANG, 'user': user}
            actionInfo = acc_find_possible_actions_user(user, 22)
            collInfo = ""
            for aInfo in actionInfo:
              temp = aInfo[2].split()
              if len(temp[0]) == 4:
                for coll in temp:
                  p_total = "980__a:%s" % coll
                  res_total = search_pattern(p=p_total)
                  p_done = "980__a:%s and (950__s:%s or 950__s:2)" % (coll, "p*")
                  res_done = search_pattern_parenthesised(p=p_done)
                  p_check = "980__a:%s and (950__s:na* or 950__s:3)" % (coll)
                  res_check = search_pattern_parenthesised(p=p_check)

                  collLink_main = """<a href="%(site_url)s/search?cc=%(coll)s&ln=%(ln)s&jrec=1&so=a">%(coll)s</a>
                        """ % {'coll': coll, 'site_url': CFG_SITE_URL, 'ln': CFG_SITE_LANG }

                  strProgress = ""

                  if len(res_done)+len(res_check) != 0:
                    if len(res_done) == len(res_total):
                      strProgress = """<span class="supervisor_prog_done">completed</span>: %i""" % (len(res_total))
                    else:
                      collLink_done = """<span class="supervisor_prog_started">in progress</span>:&nbsp;<a href="%(site_url)s/search?cc=%(coll)s&ln=%(ln)s&&p=950__s:2+or+950__s:p*&jrec=1&so=a">%(res_done)i</a>
                              """ % {'coll': coll, 'site_url': CFG_SITE_URL, 'ln': CFG_SITE_LANG, 'res_done': len(res_done) }
                      strProgress = "%s / %i" % (collLink_done, len(res_total))
                      if len(res_check) > 0:
                        collLink_check = """<span class="supervisor_prog_review"><a href="%(site_url)s/search?cc=%(coll)s&ln=%(ln)s&p=950__s:3+or+950__s:na*&jrec=1&so=a">%(res_check)i</span></a>
                              """ % {'coll': coll, 'site_url': CFG_SITE_URL, 'ln': CFG_SITE_LANG, 'res_check': len(res_check) }
                        if len(res_done)>0:
                          strProgress = "%s+ %s / %i" % (collLink_done, collLink_check, len(res_total))
                        else:
                          strProgress = "%s / %i" % (collLink_check, len(res_total))
                  else:
                    strProgress = """<span class="supervisor_prog_notStarted">waiting</span>: %s""" % len(res_total)
  

                  collInfo += """ %s <small class="nbdoccollz">(%s)</small>""" % (collLink_main, strProgress)

            if collInfo != "":
              out += """<span class="supervisor_usercolls">""" + collInfo + """</span>"""
            out += """</li>"""
          out += """</ul>"""

        #TP: nakreslim seznam neprirazenych uzivatelu
        out += """<h3>Unassigned users</h3><p>You may want to consider attaching one of the unassigned users to an supervisor. If so, please contact your administrator.</p><ul>"""
        for user in list_registered_users():
          str_user_info = get_user_info(user[0])
          if user[0] not in assignedUsers:
            out += """<li>%s</li>"""  \
                        % (get_email(user[0]))
        out += """</ul>"""

        return out