django: ตกแต่งให้ใช้งานได้

รายการเพิ่มเติมสำหรับ django รุ่น svn (ระหว่าง 0.96-)

  • ต้องติดตั้ง docutils เพิ่ม เพื่อให้สามารถดูเอกสารในหน้า admin ได้
    สำหรับเดเบียนคำสั่งคือ
    $ sudo aptitude install python-docutils
  • หน้า admin สวยงามก็จริงอยู่ แต่ตัวหนังสือเล็กไปหน่อยสำหรับผู้เฒ่ากับจอใหญ่ ๆ
    เดเบียนปรับแก้ดังนี้ (อย่าลืมสำรองไฟล์ไว้ก่อนด้วยนะครับ)
    $ sudo vi /usr/lib/python2.4/site-packages/django/contrib/admin/media/css/global.css
    body { margin:0; padding:0; font-size:84%; font-family:"Lucida Grande","DejaVu Sans","Bitstream Vera Sans",Verdana,Arial,sans-serif; color:#333; background:#fff; }
    
    /* LINKS */
    a:link, a:visited { color: #5b80b2; text-decoration:none; }
    a:hover { color: #036; }
    a img { border:none; }
    
    /* GLOBAL DEFAULTS */
    p, ol, ul, dl { margin:.2em 0 .8em 0; }
    p { padding:0; line-height:140%; }
    
    h1,h2,h3,h4,h5 { font-weight:bold; }
    h1 { font-size:1.4em; color:#666; padding:0 6px 0 0; margin:0 0 .2em 0; }
    h2 { font-size:1.3em; margin:1em 0 .5em 0; }
    h2.subhead { font-weight:normal;margin-top:0; }
    h3 { font-size:1.2em; margin:.8em 0 .3em 0; color:#666; font-weight:bold; }
    h4 { font-size:1.1em; margin:1em 0 .8em 0; padding-bottom:3px; }
    h5 { font-size:1em; margin:1.5em 0 .5em 0; color:#666; text-transform:uppercase; letter-spacing:1px; }
    
    ul li { list-style-type:square; padding:1px 0; }
    ul.plainlist { margin-left:0 !important; }
    ul.plainlist li { list-style-type:none; }
    li ul { margin-bottom:0; }
    li, dt, dd { font-size:.9em; line-height:1.2em; }
    dt { font-weight:bold; margin-top:4px; }
    dd { margin-left:0; }
    
    form { margin:0; padding:0; }
    fieldset { margin:0; padding:0; }
    
    blockquote { font-size:.9em; color:#777; margin-left:2px; padding-left:10px; border-left:5px solid #ddd; }
    code, pre { font-family:"Bitstream Vera Sans Mono", Monaco, "Courier New", Courier, monospace; background:inherit; color:#666; font-size:.9em; }
    pre.literal-block { margin:10px; background:#eee; padding:6px 8px; }
    code strong { color:#930; }
    hr { clear:both; color:#eee; background-color:#eee; height:1px; border:none; margin:0; padding:0; font-size:1px; line-height:1px; }
    
    /* TEXT STYLES & MODIFIERS */
    .small { font-size:.9em; }
    .tiny { font-size:.8em; }
    p.tiny { margin-top:-2px; }
    .mini { font-size:.7em; }
    p.mini { margin-top:-3px; }
    .help, p.help { font-size:.8em !important; color:#999; }
    p img, h1 img, h2 img, h3 img, h4 img, td img { vertical-align:middle; }
    .quiet, a.quiet:link, a.quiet:visited { color:#999 !important;font-weight:normal !important; }
    .quiet strong { font-weight:bold !important; }
    .float-right { float:right; }
    .float-left { float:left; }
    .clear { clear:both; }
    .align-left { text-align:left; }
    .align-right { text-align:right; }
    .example { margin:10px 0; padding:5px 10px; background:#efefef; }
    .nowrap { white-space:nowrap; }
    
    /* TABLES */
    table { border-collapse:collapse; border-color:#ccc; }
    td, th { font-size:.9em; line-height:1.2em; border-bottom:1px solid #eee; vertical-align:top; padding:5px; font-family:"Lucida Grande", Verdana, Arial, sans-serif; }
    th { text-align:left; font-size:1em; font-weight:bold; }
    thead th, 
    tfoot td { color:#666; padding:2px 5px; font-size:.9em; background:#e1e1e1 url(../img/admin/nav-bg.gif) top left repeat-x; border-left:1px solid #ddd; border-bottom:1px solid #ddd; } 
    tfoot td { border-bottom:none; border-top:1px solid #ddd; }
    thead th:first-child,
    tfoot td:first-child { border-left:none !important; }
    thead th.optional { font-weight:normal !important; }
    fieldset table { border-right:1px solid #eee; }
    tr.row-label td { font-size:.7em; padding-top:2px; padding-bottom:0; border-bottom:none; color:#666; margin-top:-1px; }
    tr.alt { background:#f6f6f6; }
    .row1 { background:#EDF3FE; }
    .row2 { background:white; }
    
    /* SORTABLE TABLES */
    thead th a:link, thead th a:visited { color:#666; display:block; }
    table thead th.sorted { background-position:bottom left !important; }
    table thead th.sorted a { padding-right:13px; }
    table thead th.ascending a { background:url(../img/admin/arrow-down.gif) right .4em no-repeat; }
    table thead th.descending a { background:url(../img/admin/arrow-up.gif) right .4em no-repeat; }
    
    /* ORDERABLE TABLES */
    table.orderable tbody tr td:hover { cursor:move; }
    table.orderable tbody tr td:hover { cursor:move; }
    table.orderable tbody tr td:first-child { padding-left:14px; background-image:url(../img/admin/nav-bg-grabber.gif); background-repeat:repeat-y; }
    table.orderable-initalized .order-cell, body>tr>td.order-cell { display:none; }
    
    /* FORM DEFAULTS */
    input, textarea, select { margin:2px 0; padding:2px 3px; vertical-align:middle; font-family:"Lucida Grande", Verdana, Arial, sans-serif; font-weight:normal; font-size:.9em; }
    textarea { vertical-align:top !important; }
    input[type=text], input[type=password], textarea, select, .vTextField { border:1px solid #ccc; }
    
    /*  FORM BUTTONS  */
    input[type=submit], input[type=button], .submit-row input { background:white url(../img/admin/nav-bg.gif) bottom repeat-x; padding:3px; color:black; border:1px solid #bbb; border-color:#ddd #aaa #aaa #ddd; }
    input[type=submit]:active, input[type=button]:active { background-image:url(../img/admin/nav-bg-reverse.gif); background-position:top; }
    input[type=submit].default, .submit-row input.default { border:2px solid #5b80b2; background:#7CA0C7 url(../img/admin/default-bg.gif) bottom repeat-x; font-weight:bold; color:white; }
    input[type=submit].default:active { background-image:url(../img/admin/default-bg-reverse.gif); background-position:top; }
    
    /* MODULES */
    .module { border:1px solid #ccc; margin-bottom:5px; background:white; }
    .module p, .module ul, .module h3, .module h4, .module dl, .module pre { padding-left:10px; padding-right:10px; }
    .module blockquote { margin-left:12px; }
    .module ul, .module ol { margin-left:1.5em; }
    .module h3 { margin-top:.6em; }
    .module h2, .module caption { margin:0; padding:2px 5px 3px 5px; font-size:.9em; text-align:left; font-weight:bold; background:#7CA0C7 url(../img/admin/default-bg.gif) top left repeat-x; color:white; }
    .module table { border-collapse: collapse; }
    
    /* MESSAGES & ERRORS */ 
    ul.messagelist { padding:0 0 5px 0; margin:0; }
    ul.messagelist li { font-size:1em; display:block; padding:4px 5px 4px 25px; margin:0 0 3px 0; border-bottom:1px solid #ddd; color:#666; background:#ffc url(../img/admin/icon_success.gif) 5px .3em no-repeat; }
    .errornote { font-size:1em !important; display:block; padding:4px 5px 4px 25px; margin:0 0 3px 0; border:1px solid red; color:red;background:#ffc url(../img/admin/icon_error.gif) 5px .3em no-repeat; }
    ul.errorlist { margin:0 !important; padding:0 !important; }
    .errorlist li { font-size:1em !important; display:block; padding:4px 5px 4px 25px; margin:0 0 3px 0; border:1px solid red; color:white; background:red url(../img/admin/icon_alert.gif) 5px .3em no-repeat; }
    td ul.errorlist { margin:0 !important; padding:0 !important; }
    td ul.errorlist li { margin:0 !important; } 
    .error { background:#ffc; }
    .error input, .error select { border:1px solid red; }
    div.system-message { background: #ffc; margin: 10px; padding: 6px 8px; font-size: .8em; }
    div.system-message p.system-message-title { padding:4px 5px 4px 25px; margin:0; color:red; background:#ffc url(../img/admin/icon_error.gif) 5px .3em no-repeat; }
    .description { font-size:1em; padding:5px 0 0 12px; }
    
    /* BREADCRUMBS */
    div.breadcrumbs { background:white url(../img/admin/nav-bg-reverse.gif) 0 -10px repeat-x; padding:2px 8px 3px 8px; font-size:.9em;  color:#999;  border-top:1px solid white; border-bottom:1px solid #ccc; text-align:left; }
    
    /* ACTION ICONS */
    .addlink { padding-left:12px; background:url(../img/admin/icon_addlink.gif) 0 .2em no-repeat; }
    .changelink { padding-left:12px; background:url(../img/admin/icon_changelink.gif) 0 .2em no-repeat; }
    .deletelink { padding-left:12px; background:url(../img/admin/icon_deletelink.gif) 0 .25em no-repeat; }
    a.deletelink:link, a.deletelink:visited { color:#CC3434; }
    a.deletelink:hover { color:#993333; }
    
    /* OBJECT TOOLS */
    .object-tools { font-size:.8em; font-weight:bold; font-family:Arial,Helvetica,sans-serif; padding-left:0; float:right; position:relative; margin-top:-2.4em; margin-bottom:-2em; }
    .form-row .object-tools { margin-top:5px; margin-bottom:5px; float:none; height:2em; padding-left:3.5em; }
    .object-tools li { display:block; float:left; background:url(../img/admin/tool-left.gif) 0 0 no-repeat; padding:0 0 0 8px; margin-left:2px; height:16px; }
    .object-tools li:hover { background:url(../img/admin/tool-left_over.gif) 0 0 no-repeat; }
    .object-tools a:link, .object-tools a:visited { display:block; float:left; color:white; padding:.1em 14px .1em 8px; height:14px; background:#999 url(../img/admin/tool-right.gif) 100% 0 no-repeat; }
    .object-tools a:hover, .object-tools li:hover a { background:#5b80b2 url(../img/admin/tool-right_over.gif) 100% 0 no-repeat; }
    .object-tools a.viewsitelink, .object-tools a.golink { background:#999 url(../img/admin/tooltag-arrowright.gif) top right no-repeat; padding-right:28px; }
    .object-tools a.viewsitelink:hover, .object-tools a.golink:hover { background:#5b80b2 url(../img/admin/tooltag-arrowright_over.gif) top right no-repeat; }
    .object-tools a.viewsitelink:hover, .object-tools a.golink:hover { background:#5b80b2 url(../img/admin/tooltag-arrowright_over.gif) top right no-repeat; }
    .object-tools a.addlink { background:#999 url(../img/admin/tooltag-add.gif) top right no-repeat; padding-right:28px; }
    .object-tools a.addlink:hover { background:#5b80b2 url(../img/admin/tooltag-add_over.gif) top right no-repeat; }
    
    /* OBJECT HISTORY */
    table#change-history { width:100%; }
    table#change-history tbody th { width:16em; }
    

    คราวหน้า ถ้าจะปรับเปลี่ยนเพิ่มเติม เพียงเปลี่ยนเฉพาะบรรทัดแรกจาก 84% ไปเป็นตัวเลขอื่นก็ปรับเฉพาะตัวนี้ตัวเดียว
    เมื่อแปลงแล้วได้ภาพดังนี้
    ปรับปรุง css ของหน้า admin

Topic: